使用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 相关文章推荐
JQuery 文本框回车跳到下一个文本框示例代码
Aug 30 Javascript
jQuery不使用插件及swf实现无刷新文件上传
Dec 08 Javascript
JavaScript获取当前url根目录(路径)
Jun 17 Javascript
从零开始学习Node.js系列教程五:服务器监听方法示例
Apr 13 Javascript
bootstrap中selectpicker下拉框使用方法实例
Mar 22 Javascript
vue自定义指令的创建和使用方法实例分析
Dec 04 Javascript
小试SVG之新手小白入门教程
Jan 08 Javascript
react+redux仿微信聊天界面
Jun 21 Javascript
js实现多图和单图上传显示
Dec 18 Javascript
Vue+ElementUI 中级联选择器Bug问题的解决
Jul 31 Javascript
jquery插件实现代码雨特效
Apr 24 jQuery
Vue操作Storage本地化存储
Apr 29 Vue.js
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
sony ICF-2010 拆解与改装
2021/03/02 无线电
Zend studio文件注释模板设置方法
2013/09/29 PHP
PHP获取路径和目录的方法总结【必看篇】
2017/03/04 PHP
QUnit jQuery的TDD框架
2010/11/04 Javascript
javascript代码加载优化方法
2011/01/30 Javascript
js 自动播放的实例代码
2013/11/19 Javascript
javascript读取xml实现javascript分页
2013/12/13 Javascript
5个书写JavaScript代码的坏习惯,看看你中枪了没?
2014/11/06 Javascript
js倒计时简单实现方法
2015/12/17 Javascript
jQuery实现6位数字密码输入框
2016/12/29 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
JS表格组件神器bootstrap table使用指南详解
2017/04/12 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
jquery自定义显示消息数量
2017/12/19 jQuery
JavaScript实现删除数组重复元素的5种常用高效算法总结
2018/01/18 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
2018/08/28 jQuery
微信公众号H5支付接口调用方法
2019/01/10 Javascript
浅谈webpack 四个核心概念之Entry
2019/06/12 Javascript
js Array.slice的8种不同用法示例
2019/07/10 Javascript
Python 循环语句之 while,for语句详解
2018/04/23 Python
windows下 兼容Python2和Python3的解决方法
2018/12/05 Python
解决新django中的path不能使用正则表达式的问题
2018/12/18 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
Python 安装 virturalenv 虚拟环境的教程详解
2020/02/21 Python
Python读入mnist二进制图像文件并显示实例
2020/04/24 Python
python中os包的用法
2020/06/01 Python
Python爬虫实现自动登录、签到功能的代码
2020/08/20 Python
空字符串(“”)和null的区别
2012/11/13 面试题
struct和class的区别
2015/11/20 面试题
Linux开机引导的步骤是什么
2014/02/26 面试题
请假条格式范文
2014/04/10 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
铁人纪念馆观后感
2015/06/16 职场文书
CSS3 实现NES游戏机的示例代码
2021/04/21 HTML / CSS
解决springboot druid数据库连接失败后一直重连的方法
2022/04/19 Java/Android
Python尝试实现蒙特卡罗模拟期权定价
2022/04/21 Python