使用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实现输入提示(自动完成)的实例代码
Jun 14 Javascript
Jquery.Form 异步提交表单的简单实例
Mar 03 Javascript
轻松学习jQuery插件EasyUI EasyUI创建CRUD应用
Nov 30 Javascript
layer实现弹窗提交信息
Dec 12 Javascript
JS 实现随机验证码功能
Feb 15 Javascript
JavaScript 判断对象中是否有某属性的常用方法
Jun 14 Javascript
React中使用async validator进行表单验证的实例代码
Aug 17 Javascript
详解Vue中使用Axios拦截器
Apr 22 Javascript
jqGrid表格底部汇总、合计行footerrow处理
Aug 21 Javascript
jquery实现点击弹出对话框
Feb 08 jQuery
JavaScript eval()函数定义及使用方法详解
Jul 07 Javascript
js前端设计模式优化50%表单校验代码示例
Jun 21 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
详解Yii2 之 生成 URL 的方法
2017/06/16 PHP
jQuery使用动态渲染表单功能完成ajax文件下载
2013/01/15 Javascript
js格式化金额可选是否带千分位以及保留精度
2014/01/28 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
JavaScript中join()方法的使用简介
2015/06/09 Javascript
JS hashMap实例详解
2016/05/26 Javascript
JavaScript装饰器函数(Decorator)实例详解
2017/03/30 Javascript
ES6入门教程之Class和Module详解
2017/05/17 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
layer父页获取弹出层输入框里面的值方法
2019/09/02 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
Vue 数组和对象更新,但是页面没有刷新的解决方式
2019/11/09 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
Python编程中实现迭代器的一些技巧小结
2016/06/21 Python
深入理解Django中内置的用户认证
2017/10/06 Python
浅谈python迭代器
2017/11/08 Python
Python从使用线程到使用async/await的深入讲解
2018/09/16 Python
django2.0扩展用户字段示例
2019/02/13 Python
python 实现简单的FTP程序
2019/12/27 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
SCDKey德国:全球领先的数字游戏市场
2019/04/09 全球购物
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
一套C++笔试题面试题
2012/06/06 面试题
大学生毕业自我评价范文分享
2013/11/07 职场文书
数控机床专业自荐信
2014/05/19 职场文书
小学生纪念九一八事变演讲稿
2014/09/14 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python
解析Java异步之call future
2021/06/14 Java/Android
修改并编译golang源码的操作步骤
2021/07/25 Golang