Vue实现类似Spring官网图片滑动效果方法


Posted in Javascript onMarch 01, 2019

先来看一下Spring官网首页的一个图片滑动显示效果

Vue实现类似Spring官网图片滑动效果方法

可以看到, 随着鼠标的滑动,绿色图片和灰色图片可以无缝的在鼠标俩两边切换显示。

显示这样的效果其实很简单,利用固定定位保证两张图片在同一位置下, 我们可以将灰色图片当做背景层图片,然后根据获取到的实时X轴坐标, 动态改变绿色图片的宽度, 隐藏超出X轴坐标的部分, 就可以达到这样的效果, 简单来说, 这效果就是动态改变上层图片的宽度。

实现效果:

Vue实现类似Spring官网图片滑动效果方法

我这边选择了两张同样大小的KDA卡莎的图片, 将金色图作为背景图,暗黑图作为左侧图, 用了Vue的mousemove来获取X轴坐标值, 并通过监听坐标轴变化来实时改变左侧图片的宽度。

鼠标部分, 简化了Spring官网上鼠标位置出轴承的显示, 采用了cursor: ew-resize样式, 使得鼠标看起来可以左右滑动。

代码粘贴

<template>
  <div class="scroll">
    <div class="container" @mousemove="mousemove">
      <div class="base"></div>
      <div class="left" ref="left">
        <img src="../../static/image/kda-karsa.jpg" alt="">
      </div>
    </div>
  </div>
</template>
<script>
export default {
  data() {
    return {
      posX: 0
    }
  },
  methods: {
    mousemove(e) {
      // 获取x 坐标
      this.posX = e.offsetX 
    }
  },
  watch: {
    posX(curX) {
      this.$refs.left.style.width = `${curX}px`
    }  
  }
}
</script>
<style lang="scss" scoped>
.scroll{
  .container{
    width: 960px;
    height: 540px;
    background-color: #cccccc;
    position: relative;
    cursor: ew-resize;
    .base{
      position: absolute;
      width: 960px;
      height: 540px;
      top: 0;
      left: 0;
      background: url('../../static/image/kda-karsa-golden.jpg') no-repeat;
      background-size: 100%;
    }
    .left{
      position: absolute;
      width: 480px;
      height: 540px;
      overflow: hidden;
      top: 0;
      left: 0;
      img{
       width: 960px;
       height: 540px; 
      }
    }
  }
}
</style>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript while语句和do while语句的区别分析
Dec 08 Javascript
13个绚丽的Jquery 界面设计网站推荐
Sep 28 Javascript
js实现iframe自动自适应高度的方法
Feb 17 Javascript
JavaScript按值删除数组元素的方法
Apr 24 Javascript
jQuery获取cookie值及删除cookie用法实例
Apr 15 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
May 04 Javascript
canvas实现粒子时钟效果
Feb 06 Javascript
Vue.js中用webpack合并打包多个组件并实现按需加载
Feb 17 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
Nov 19 Javascript
vue v-for直接循环数字实例
Nov 07 Javascript
vue+element table表格实现动态列筛选的示例代码
Jan 14 Vue.js
javascript遍历对象的五种方式实例代码
Oct 24 Javascript
[原创]微信小程序获取网络类型的方法示例
Mar 01 #Javascript
使用JavaScript解析URL的方法示例
Mar 01 #Javascript
可能被忽略的一些JavaScript数组方法细节
Feb 28 #Javascript
Vue插件从封装到发布的完整步骤记录
Feb 28 #Javascript
Javascript删除数组里的某个元素
Feb 28 #Javascript
vue强制刷新组件的方法示例
Feb 28 #Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
Feb 28 #Javascript
You might like
thinkphp的URL路由规则与配置实例
2014/11/26 PHP
php中get_cfg_var()和ini_get()的用法及区别
2015/03/04 PHP
php中执行系统命令的方法
2015/03/21 PHP
PHP统一页面编码避免乱码问题
2015/04/09 PHP
Laravel框架路由和控制器的绑定操作方法
2018/06/12 PHP
PHP获取当前时间不准确问题解决方案
2020/08/14 PHP
CCPry JS类库 代码
2009/10/30 Javascript
js实现的仿新浪微博完美的时间组件升级版
2011/12/20 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
jQuery中nextUntil()方法用法实例
2015/01/07 Javascript
JavaScript实现简易的天数计算器实例【附demo源码下载】
2017/01/18 Javascript
AugularJS从入门到实践(必看篇)
2017/07/10 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
详解微信UnionID作用
2019/05/15 Javascript
Vue引入Stylus知识点总结
2020/01/16 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
[03:07]DOTA2英雄基础教程 冰霜诅咒极寒幽魂
2013/12/06 DOTA
[04:23]DOTA2上海特锦赛小组赛第一日 TOP10精彩集锦
2016/02/27 DOTA
python获得文件创建时间和修改时间的方法
2015/06/30 Python
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
Django读取Mysql数据并显示在前端的实例
2018/05/27 Python
深入理解Python异常处理的哲学
2019/02/01 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
animation和transition的区别
2020/10/12 HTML / CSS
优秀毕业生求职信范文
2014/01/02 职场文书
物业经理自我鉴定
2014/03/03 职场文书
出国留学计划书
2014/04/27 职场文书
珍惜资源的建议书
2014/08/26 职场文书
党员四风剖析材料
2014/08/27 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
旷工辞退通知书
2015/04/17 职场文书
民间借贷借条范本
2015/05/25 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
Python人工智能之混合高斯模型运动目标检测详解分析
2021/11/07 Python
Python使用pandas导入xlsx格式的excel文件内容操作代码
2022/12/24 Python