使用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判断输入是否为数字的具体实例
Aug 03 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
JS模拟并美化的表单控件完整实例
Aug 19 Javascript
javascript实现获取浏览器版本、浏览器类型
Dec 02 Javascript
JavaScript随机生成颜色的方法
Oct 15 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
Dec 21 Javascript
javascript实现简单的ajax封装示例
Dec 28 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
Vue 拦截器对token过期处理方法
Jan 23 Javascript
JavaScript实现短暂提示框功能
Apr 04 Javascript
layer更改皮肤的实现方法
Sep 11 Javascript
js编写简易的计算器
Jul 29 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
动态网站web开发 PHP、ASP还是ASP.NET
2006/10/09 PHP
php var_export与var_dump 输出的不同
2013/08/09 PHP
kindeditor 加入七牛云上传的实例讲解
2017/11/12 PHP
php如何实现数据库的备份和恢复
2020/11/30 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
获取offsetTop和offsetLeft值的js代码(兼容)
2013/04/16 Javascript
javascript 数字格式化输出的实现代码
2013/12/10 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
VuePress 快速踩坑小结
2019/02/14 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
vue 路由meta 设置导航隐藏与显示功能的示例代码
2020/09/04 Javascript
[01:28:44]DOTA2-DPC中国联赛定级赛 RNG vs iG BO3第一场 1月10日
2021/03/11 DOTA
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
Python多进程同步简单实现代码
2016/04/27 Python
Python进阶-函数默认参数(详解)
2017/05/18 Python
Python3.4实现远程控制电脑开关机
2018/02/22 Python
Python/Django后端使用PIL Image生成头像缩略图
2019/04/30 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
python机器学习库scikit-learn:SVR的基本应用
2019/06/26 Python
numpy:np.newaxis 实现将行向量转换成列向量
2019/11/30 Python
Python 脚本的三种执行方式小结
2019/12/21 Python
Python3爬虫中关于中文分词的详解
2020/07/29 Python
HTML5 拖放(Drag 和 Drop)详解与实例代码
2017/09/14 HTML / CSS
HTML5语义化元素你真的用对了吗
2019/08/22 HTML / CSS
汽车专业人才自我鉴定范文
2013/12/29 职场文书
超市周年庆活动方案
2014/08/16 职场文书
2014年人力资源工作总结
2014/11/19 职场文书
公司保洁员岗位职责
2015/02/13 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书
智慧人生:永远不需要向任何人解释你自己
2019/08/20 职场文书
七年级之开学家长寄语35句
2019/09/05 职场文书
MySQL Innodb关键特性之插入缓冲(insert buffer)
2021/04/08 MySQL