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 数组的方法集合
Jun 05 Javascript
jQuery ajax cache缓存问题
Jul 01 Javascript
js表头排序实现方法
Jan 16 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
Jun 28 Javascript
Vue.js学习笔记之 helloworld
Aug 14 Javascript
Bootstrap基本插件学习笔记之标签切换(17)
Dec 08 Javascript
HTML5 js实现拖拉上传文件功能
Nov 20 Javascript
JavaScript中英文字符长度统计方法示例【按照中文占2个字符】
Jan 17 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
Mar 28 Javascript
node.js 模块和其下载资源的镜像设置的方法
Sep 06 Javascript
如何在微信小程序中存setStorage
Dec 13 Javascript
JS数据类型(基本数据类型、引用数据类型)及堆和栈的区别分析
Mar 04 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
上海永华YH-R296(华普R-96)12波段立体声收音机的分析和打理
2021/03/02 无线电
ADODB类使用
2006/11/25 PHP
session在PHP大型web应用中的使用
2011/06/25 PHP
从新浪弄下来的全屏广告代码 与使用说明
2007/03/15 Javascript
JavaScript入门教程(2) JS基础知识
2009/01/31 Javascript
关于html+ashx开发中几个问题的解决方法
2011/07/18 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
jquery live()重复绑定的解决方法介绍
2014/01/03 Javascript
jquery 实现输入邮箱时自动补全下拉提示功能
2015/10/04 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
用JS实现轮播图效果(二)
2016/06/26 Javascript
jquery动态遍历Json对象的属性和值的方法
2016/07/27 Javascript
基于bootstrap-datetimepicker.js不支持IE8的快速解决方法
2016/11/07 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
Node.js中的cluster模块深入解读
2018/06/11 Javascript
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
antd Upload 文件上传的示例代码
2018/12/14 Javascript
[50:34]VGJ.T vs Fnatic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python检测是文件还是目录的方法
2015/07/03 Python
详解python中字典的循环遍历的两种方式
2017/02/07 Python
python:pandas合并csv文件的方法(图书数据集成)
2018/04/12 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
Python爬虫使用脚本登录Github并查看信息
2018/07/16 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
python爬虫超时的处理的实例
2018/12/19 Python
Python比较配置文件的方法实例详解
2019/06/06 Python
简单了解python PEP的一些知识
2019/07/13 Python
在django view中给form传入参数的例子
2019/07/19 Python
pycharm修改文件的默认打开方式的步骤
2019/07/29 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
幼儿如何来做好自我评价
2013/11/05 职场文书
读书心得体会
2013/12/28 职场文书
网络编辑岗位职责
2014/03/18 职场文书
小程序实现筛子抽奖
2021/05/26 Javascript
vue实现锚点定位功能
2021/06/29 Vue.js