使用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的给文章加入关键字链接
Oct 26 Javascript
jQuery Ajax异步处理Json数据详解
Nov 05 Javascript
初识Node.js
Sep 03 Javascript
10分钟学会写Jquery插件实例教程
Sep 06 Javascript
js实现div弹出层的方法
Nov 20 Javascript
nw.js实现类似微信的聊天软件
Mar 16 Javascript
浅谈React + Webpack 构建打包优化
Jan 23 Javascript
JS实现二维数组元素的排列组合运算简单示例
Jan 28 Javascript
一篇文章,教你学会Vue CLI 插件开发
Apr 17 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
Sep 27 Javascript
layui数据表格重载实现往后台传参
Nov 15 Javascript
BootStrap前端框架使用方法详解
Feb 26 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 安装方法
2006/10/09 PHP
初探PHP5
2006/10/09 PHP
一键删除顽固的空文件夹 软件下载
2007/01/26 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
试用php中oci8扩展
2015/06/18 PHP
php实现商城购物车的思路和源码分析
2020/07/23 PHP
node.js中的fs.utimes方法使用说明
2014/12/15 Javascript
基于javascript bootstrap实现生日日期联动选择
2016/04/07 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
javascript鼠标跟随运动3种效果(眼球效果,苹果菜单,方向跟随)
2016/10/27 Javascript
手机端js和html5刮刮卡效果
2020/09/29 Javascript
js中小数向上取整数,向下取整数,四舍五入取整数的实现(必看篇)
2017/02/13 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
jQuery利用FormData上传文件实现批量上传
2018/12/04 jQuery
jquery获取file表单选择文件的路径、名字、大小、类型
2019/01/18 jQuery
Python中文件遍历的两种方法
2014/06/16 Python
python 执行shell命令并将结果保存的实例
2018/05/11 Python
Python2.7环境Flask框架安装简明教程【已测试】
2018/07/13 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
python实现拼接图片
2020/03/23 Python
python -v 报错问题的解决方法
2020/09/15 Python
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
BRASTY捷克:购买香水、化妆品、手袋和手表
2017/07/12 全球购物
墨西哥巴士车票在线购买:ClickBus
2018/03/27 全球购物
终端业务员岗位职责
2013/11/27 职场文书
《少年王勃》教学反思
2014/04/27 职场文书
信仰心得体会
2014/09/05 职场文书
长江三峡导游词
2015/01/31 职场文书
办公室主任岗位职责
2015/01/31 职场文书
毕业生对母校寄语
2015/02/26 职场文书
培训班开班主持词
2015/07/02 职场文书
大学生活感想
2015/08/10 职场文书
英语版自我评价,35句话轻松搞定
2019/10/08 职场文书
Python中Matplotlib的点、线形状、颜色以及绘制散点图
2022/04/07 Python