使用vue的transition完成滑动过渡的示例代码


Posted in Javascript onJune 25, 2018

使用vue来做一些小巧的动画效果是非常方便的,今天本人想使用vue的transition来完成一个滑动过渡效果,这里和大家分享一下。

直接上源代码:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Vue滑动效果</title>
  <style>
    .d {
      position: absolute;
      border: 1px solid red;
      width: 30px;
      height: 30px;
    }
    @keyframes show {
      0% {
        opacity: 0;
        left: 32px;
      }
      100% {
        opacity: 1;
        left: 0;
      }
    }
    @keyframes hide {
      0% {
        opacity: 1;
        left: 0;
      }
      100% {
        opacity: 0;
        left: -32px;
      }
    }
    .show-enter-active {
      animation: show 1.2s;
    }
    .show-leave-active {
      animation: hide 1.2s;
    }
    .show-enter, .show-leave-to {
      opacity: 0;
    }
    .wrap {
      position: relative;
      width: 32px;
      height: 32px;
    }
  </style>
  <script src="https://cdn.bootcss.com/vue/2.4.2/vue.min.js"></script>
</head>
<body>
<div id="app">
  <p>{{ message }}</p>
  <div class="wrap">
    <transition name="show">
      <div class="d" v-for="item in list" :key="item.id" v-if="count === item.id">
        {{ item.text }}
      </div>
    </transition>
  </div>
  <button @click="add">add</button>
</div>

<script>
  new Vue({
    el: '#app',
    data () {
      return {
        message: 'Hello Vue.js!',
        count: 0,
        list: [
          {id: 0, text: 'aaa'},
          {id: 1, text: 'bbb'},
          {id: 2, text: 'ccc'}
        ]
      }
    },
    methods: {
      add: function () {
        if (this.count < this.list.length - 1) {
          this.count += 1;
        } else {
          this.count = 0;
        }
      }
    }
  })
</script>
</body>
</html>

这里需要注意的是父级使用relative,子级使用absolute进行定位,利用left值来进行位置的控制移动。这里如果使用transform的话,由于之前的div有一个渐变的消失过程,这个过程中他的位置一直有存在,造成了后面的div无法正确移动到对应位置,所以使用absolute更好。

实在不行可以使用transition的mode属性,设置成out-in,先让前者完成动画,让占据的位置完全消失,使得下一个div可以正常运动,不过这种方式只能先后完成动画,不能同时完成动画。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Js 本页面传值实现代码
May 17 Javascript
js加密解密字符串可自定义密码因子
May 13 Javascript
百度判断手机终端并自动跳转js代码及使用实例
Jun 11 Javascript
jQuery中:eq()选择器用法实例
Dec 29 Javascript
js的for in循环和java里foreach循环的区别分析
Jan 28 Javascript
jQuery如何使用自动触发事件trigger
Nov 29 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
Apr 29 Javascript
在JavaScript中模拟类(class)及类的继承关系
May 20 Javascript
Javascript中判断一个值是否为undefined的方法详解
Sep 28 Javascript
jQuery插件FusionCharts绘制ScrollColumn2D图效果示例【附demo源码下载】
Mar 22 jQuery
react高阶组件添加和删除props
Apr 26 Javascript
vue实现虚拟列表功能的代码
Jul 28 Javascript
JS实现仿微信支付弹窗功能
Jun 25 #Javascript
vue.js 实现输入框动态添加功能
Jun 25 #Javascript
vue-router重定向不刷新问题的解决
Jun 25 #Javascript
JavaScript实现封闭区域布尔运算的示例代码
Jun 25 #Javascript
详解React之父子组件传递和其它一些要点
Jun 25 #Javascript
Vue EventBus自定义组件事件传递
Jun 25 #Javascript
一个Vue页面的内存泄露分析详解
Jun 25 #Javascript
You might like
PHP5.2下chunk_split()函数整数溢出漏洞 分析
2007/06/06 PHP
PHP计算近1年的所有月份
2017/03/13 PHP
PHP5.6新增加的可变函数参数用法分析
2017/08/25 PHP
PHP实现的简单sha1加密功能示例
2017/08/27 PHP
php自定义排序uasort函数示例【二维数组按指定键值排序】
2019/06/19 PHP
TP5多入口设置实例讲解
2020/12/15 PHP
javascript 必知必会之closure
2009/09/21 Javascript
网页中CDATA标记的说明
2010/09/12 Javascript
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
2013/02/26 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
基于jquery实现最简单的选项卡切换效果
2016/05/08 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
javaScript语法总结
2016/11/25 Javascript
JQueryEasyUI框架下的combobox的取值和绑定的方法
2017/01/22 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
vue项目打包后打开页面空白解决办法
2018/06/29 Javascript
Vue 嵌套路由使用总结(推荐)
2020/01/13 Javascript
[01:00:35]2018DOTA2亚洲邀请赛3月30日B组 EffcetVSMineski
2018/03/31 DOTA
python实现DNS正向查询、反向查询的例子
2014/04/25 Python
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
Python使用Selenium爬取淘宝异步加载的数据方法
2018/12/17 Python
python assert的用处示例详解
2019/04/01 Python
对Django项目中的ORM映射与模糊查询的使用详解
2019/07/18 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
Python实现CNN的多通道输入实例
2020/01/17 Python
Html5页面内使用JSON动画的实现
2019/01/29 HTML / CSS
前端水印的简单实现代码示例
2020/12/02 HTML / CSS
伦敦平价潮流珠宝首饰品牌:Astrid & Miyu
2016/10/10 全球购物
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
新学期校长寄语
2014/01/18 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
社团个人总结范文
2015/03/05 职场文书
单方投资意向书
2015/05/11 职场文书