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 直接操作本地文件的实现代码
Dec 01 Javascript
jquery如何判断某元素是否具备指定的样式
Nov 05 Javascript
JavaScript?Apple设备检测示例代码
Nov 15 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
Feb 22 Javascript
JS图片左右无缝隙滚动的实现(兼容IE,Firefox 遵循W3C标准)
Sep 23 Javascript
jQuery绑定事件的四种方式介绍
Oct 31 Javascript
深入理解 JavaScript 中的 JSON
Apr 06 Javascript
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 jQuery
angularjs利用directive实现移动端自定义软键盘的示例
Sep 20 Javascript
JQuery属性操作与循环用法示例
May 15 jQuery
javascript设计模式之迭代器模式
Jan 30 Javascript
JavaScript canvas绘制渐变颜色的矩形
Feb 18 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
PHP脚本的10个技巧(4)
2006/10/09 PHP
php下防止单引号,双引号在接受页面转义的设置方法
2008/09/25 PHP
PHP 代码规范小结
2012/03/08 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
document 和 document.all 分别什么时候用
2006/06/22 Javascript
JavaScript入门教程(12) js对象化编程
2009/01/31 Javascript
jquery中:input和input的区别分析
2011/07/13 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
bootstrap fileinput实现文件上传功能
2017/08/23 Javascript
3种vue组件的书写形式
2017/11/29 Javascript
jQuery实现定时隐藏对话框的方法分析
2018/02/12 jQuery
Node.js命令行/批处理中如何更改Linux用户密码浅析
2018/07/22 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
vue中利用simplemde实现markdown编辑器(增加图片上传功能)
2019/04/29 Javascript
Vue-cli3简单使用(图文步骤)
2019/04/30 Javascript
jQuery中DOM操作原则实例分析
2019/08/01 jQuery
Layui带搜索的下拉框的使用以及动态数据绑定方法
2019/09/28 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
初步理解Python进程的信号通讯
2015/04/09 Python
Python第三方库的安装方法总结
2016/06/06 Python
Python 确定多项式拟合/回归的阶数实例
2018/12/29 Python
python科学计算之numpy——ufunc函数用法
2019/11/25 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
CSS3属性box-sizing使用指南
2014/12/09 HTML / CSS
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
灵泰克Java笔试题
2016/01/09 面试题
机械设计及其自动化专业推荐信
2013/10/31 职场文书
咖啡馆创业计划书
2014/01/26 职场文书
个人廉洁自律总结
2015/03/06 职场文书
院系推荐意见
2015/06/05 职场文书
公司保洁员管理制度
2015/08/04 职场文书
中学生运动会广播稿
2015/08/19 职场文书
《杜鹃的婚约》OP主题曲「凸凹」无字幕影像公开
2022/04/08 日漫