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 相关文章推荐
浅谈js中的闭包
Mar 16 Javascript
由ReactJS的Hello world说开来
Jul 02 Javascript
跟我学习javascript的for循环和for...in循环
Nov 18 Javascript
使用pcs api往免费的百度网盘上传下载文件的方法
Mar 17 Javascript
Bootstrap模仿起筷首页效果
May 09 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
Jul 18 Javascript
原生JavaScript实现AJAX、JSONP
Feb 07 Javascript
node.js实现回调的方法示例
Mar 01 Javascript
详解如何使用webpack+es6开发angular1.x
Aug 16 Javascript
浅谈AngularJS中使用$resource(已更新)
Sep 14 Javascript
Windows下支持自动更新的Electron应用脚手架的方法
Dec 24 Javascript
解决微信浏览器缓存站点入口文件(IIS部署Vue项目)
Jun 17 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
IP攻击升级,程序改进以对付新的攻击
2010/11/23 PHP
php函数之子字符串替换&amp;#65279; str_replace
2011/03/23 PHP
PHP实现货币换算的方法
2014/11/29 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
JavaScript中跨域调用Flash的方法
2014/08/11 Javascript
jQuery ajax提交Form表单实例(附demo源码)
2016/04/06 Javascript
jQuery绑定事件-多种实现方式总结
2016/05/09 Javascript
jQuery的ajax和遍历数组json实例代码
2016/08/01 Javascript
浅谈javascript的url参数parse和build函数
2017/03/04 Javascript
浅谈AngularJS中使用$resource(已更新)
2017/09/14 Javascript
解析vue中的$mount
2017/12/21 Javascript
p5.js 毕达哥拉斯树的实现代码
2018/03/23 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
详解Vue组件插槽的使用以及调用组件内的方法
2018/11/13 Javascript
Layui数据表格之单元格编辑方式
2019/10/26 Javascript
通过vue.extend实现消息提示弹框的方法记录
2021/01/07 Vue.js
TensorFLow用Saver保存和恢复变量
2018/03/10 Python
浅谈numpy数组中冒号和负号的含义
2018/04/18 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
python语言元素知识点详解
2019/05/15 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
记一次django内存异常排查及解决方法
2020/08/07 Python
Python getattr()函数使用方法代码实例
2020/08/10 Python
详解如何用HTML5 Canvas API控制图片的缩放变换
2016/03/22 HTML / CSS
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
Ibatis如何调用存储过程
2015/05/15 面试题
String、StringBuffer、StringBuilder有区别
2015/09/18 面试题
小学二年级评语
2014/04/21 职场文书
地质工程专业毕业生求职信
2014/08/08 职场文书
学校社团活动总结
2015/05/07 职场文书
python3实现常见的排序算法(示例代码)
2021/07/04 Python
索尼ICF-36收音机评测
2022/04/30 无线电
Python中的 No Module named ***问题及解决
2022/07/23 Python