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 相关文章推荐
jquery触发a标签跳转事件示例代码
Jul 21 Javascript
jquery mobile事件多次绑定示例代码
Sep 13 Javascript
JS关键字球状旋转效果的实例代码
Nov 29 Javascript
延时加载JavaScript代码提高速度
Dec 27 Javascript
使用Require.js封装原生js轮播图的实现代码
Jun 15 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
Jul 10 Javascript
jQuery图片缩放插件smartZoom使用实例详解
Aug 25 jQuery
jQuery实现的文字逐行向上间歇滚动效果示例
Sep 06 jQuery
微信小程序中button组件的边框设置的实例详解
Sep 27 Javascript
vue+iview+less+echarts实战项目总结
Feb 22 Javascript
layui 表单标签的校验方法
Sep 04 Javascript
vue下canvas裁剪图片实例讲解
Apr 16 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中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
2014/08/05 PHP
php实现给图片加灰色半透明效果的方法
2014/10/20 PHP
php连接odbc数据源并保存与查询数据的方法
2014/12/24 PHP
Laravel如何实现自动加载类
2019/10/14 PHP
再谈javascript 动态添加样式规则 W3C校检
2009/12/25 Javascript
extjs中grid中嵌入动态combobox的应用
2011/01/01 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
jQuery.event兼容各浏览器的event详细解析
2013/12/18 Javascript
javascript实现复选框超过限制即弹出警告框的方法
2015/02/25 Javascript
JavaScript运算符小结
2015/06/03 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
全面解析Bootstrap表单使用方法(表单样式)
2015/11/24 Javascript
Ubuntu系统下Angularjs开发环境安装
2016/09/01 Javascript
AngulerJS学习之按需动态加载文件
2017/02/13 Javascript
在使用JSON格式处理数据时应该注意的问题小结
2017/05/20 Javascript
Angular4实现动态添加删除表单输入框功能
2017/08/11 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
2018/09/29 Javascript
每个 JavaScript 工程师都应懂的33个概念
2018/10/22 Javascript
微信小程序整合使用富文本编辑器的方法详解
2019/04/25 Javascript
JS正则表达式封装与使用操作示例
2019/05/15 Javascript
Python PyQt5标准对话框用法示例
2017/08/23 Python
Python如何计算语句执行时间
2019/11/22 Python
python GUI库图形界面开发之PyQt5美化窗体与控件(异形窗体)实例
2020/02/25 Python
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
淘宝活动策划方案
2014/02/06 职场文书
检查接待方案
2014/02/27 职场文书
情人节寄语大全
2014/04/11 职场文书
庆六一活动总结
2014/08/29 职场文书
营销与策划实训报告
2014/11/05 职场文书
表扬通报怎么写
2015/01/16 职场文书
新人入职感言
2015/07/31 职场文书
如何给HttpServletRequest增加消息头
2021/06/30 Java/Android