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的gzip静态压缩方法
Jan 05 Javascript
如何用javascript去掉字符串里的所有空格
Feb 08 Javascript
JavaScript 定义function的三种方式小结
Oct 16 Javascript
window.js 主要包含了页面的一些操作
Dec 23 Javascript
基于jQuery实现表格数据的动态添加与统计的代码
Jan 31 Javascript
Ajax提交与传统表单提交的区别说明
Feb 07 Javascript
javascript中不提供sleep功能如何实现这个功能
May 27 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
Aug 24 Javascript
ionic实现可滑动的tab选项卡切换效果
Apr 15 Javascript
使用JS实现气泡跟随鼠标移动的动画效果
Sep 16 Javascript
vue+vuex+axios+echarts画一个动态更新的中国地图的方法
Dec 19 Javascript
vue-cli2打包前和打包后的css前缀不一致的问题解决
Aug 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
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
2016/11/14 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
js 目录列举函数
2008/11/06 Javascript
5款Javascript颜色选择器
2009/10/25 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
简单的邮箱登陆的提示效果类似于yahoo邮箱
2014/02/26 Javascript
Javascript获取数组中的最大值和最小值的方法汇总
2016/01/01 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
2016/06/06 Javascript
解析利用javascript如何判断一个数为素数
2016/12/08 Javascript
js中new一个对象的过程
2017/02/20 Javascript
React利用插件和不用插件实现双向绑定的方法详解
2017/07/03 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
Electron中实现大文件上传和断点续传功能
2018/10/28 Javascript
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
[42:48]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第二场 12.11
2020/12/16 DOTA
在python中的socket模块使用代理实例
2014/05/29 Python
深入浅析python定时杀进程
2016/06/06 Python
Python走楼梯问题解决方法示例
2018/07/25 Python
python查询文件夹下excel的sheet名代码实例
2019/04/02 Python
PyQt5 实现字体大小自适应分辨率的方法
2019/06/18 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
Python configparser模块配置文件过程解析
2020/03/03 Python
Pytorch转onnx、torchscript方式
2020/05/25 Python
python opencv肤色检测的实现示例
2020/12/21 Python
Python如何telnet到网络设备
2021/02/18 Python
HTMl5的存储方式sessionStorage和localStorage详解
2014/03/18 HTML / CSS
数据库面试要点基本概念
2013/10/31 面试题
介绍一下javax.servlet.Servlet接口及其主要方法
2015/11/30 面试题
入党积极分子自我鉴定范文
2014/03/25 职场文书
党支部公开承诺书
2014/03/28 职场文书
2014最新毕业证代领委托书
2014/09/26 职场文书