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中实现类的方式探讨
Aug 28 Javascript
javascript中createElement的两种创建方式
May 14 Javascript
JavaScript保存并运算页面中数字类型变量的写法
Jul 06 Javascript
JS实现三个层重叠点击互相切换的方法
Oct 06 Javascript
angular.bind使用心得
Oct 26 Javascript
微信小程序教程之本地图片上传(leancloud)实例详解
Nov 16 Javascript
Angular实现购物车计算示例代码
Feb 21 Javascript
vue2.0 中使用transition实现动画效果使用心得
Aug 13 Javascript
vue操作下拉选择器获取选择的数据的id方法
Aug 24 Javascript
jquery.pager.js实现分页效果
Jul 29 jQuery
在vue中阻止浏览器后退的实例
Nov 06 Javascript
AudioContext 实现音频可视化(web技术分享)
Feb 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
收听困难?教您超简便短波广播抗干扰方法!
2021/03/01 无线电
Windows下的PHP5.0详解
2006/11/18 PHP
Smarty3配置及入门语法
2017/02/22 PHP
PHP封装curl的调用接口及常用函数详解
2018/05/31 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
使用JS操作页面表格,元素的一些技巧
2007/02/02 Javascript
JS前端框架关于重构的失败经验分享
2013/03/17 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
网页右下角弹出窗体实现代码
2014/06/05 Javascript
Js控制滑轮左右滑动实例
2015/02/13 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
AngularJS创建自定义指令的方法详解
2016/11/03 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
jQuery动态生成不规则表格(前后端)
2017/02/21 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
详谈js中标准for循环与foreach(for in)的区别
2017/11/02 Javascript
vue vuex vue-rouert后台项目——权限路由(适合初学)
2017/12/29 Javascript
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
AngularJS 多指令Scope问题的解决
2018/10/25 Javascript
在vue中使用setInterval的方法示例
2019/04/16 Javascript
浅析Vue中拆分视图层代码的5点建议
2019/08/15 Javascript
微信小程序 组件的外部样式externalClasses使用详解
2019/09/06 Javascript
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
Django 路由系统URLconf的使用
2018/10/11 Python
pycharm如何实现跨目录调用文件
2020/02/28 Python
input file上传文件样式支持html5的浏览器解决方案
2012/11/14 HTML / CSS
HTML中使用SVG与SVG预定义形状元素介绍
2013/06/28 HTML / CSS
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
单位未婚证明范本
2014/01/18 职场文书
晚会主持词开场白
2014/03/17 职场文书
出生证明公证书
2014/04/09 职场文书
产品发布会策划方案
2014/05/12 职场文书
旅游饭店管理专业自荐书
2014/06/28 职场文书
单位提档介绍信
2015/10/22 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏