使用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 相关文章推荐
XML+XSL 与 HTML 两种方案的结合
Apr 22 Javascript
Javascript 网页水印(非图片水印)实现代码
Mar 01 Javascript
jQuery EasyUI NumberBox(数字框)的用法
Jul 08 Javascript
谈谈JavaScript中的函数与闭包
Apr 14 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
May 07 Javascript
JavaScript实现大数的运算
Nov 24 Javascript
学习JavaScript设计模式之状态模式
Jan 08 Javascript
Javascript函数中的arguments.callee用法实例分析
Sep 16 Javascript
Angular.JS内置服务$http对数据库的增删改使用教程
May 07 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
Mar 03 Javascript
vue项目中使用ueditor的实例讲解
Mar 05 Javascript
vue实现简单瀑布流布局
May 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
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
PHP5多态性与动态绑定介绍
2015/04/03 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
2016/03/17 PHP
PHP实现微信图片上传到服务器的方法示例
2017/06/29 PHP
PHP使用glob方法遍历文件夹下所有文件的实例
2018/10/17 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
DOM精简教程
2006/10/03 Javascript
通过Mootools 1.2来操纵HTML DOM元素
2009/09/15 Javascript
JavaScript中为元素加上name属性的方法
2011/05/09 Javascript
设为首页和收藏的Javascript代码(亲测兼容IE,Firefox,chrome等浏览器)
2013/11/18 Javascript
JS实现网页上随机产生超链接地址的方法
2015/11/09 Javascript
基于jquery实现轮播特效
2016/04/22 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
jQuery对table表格进行增删改查
2020/12/22 Javascript
微信浏览器禁止页面下拉查看网址实例详解
2017/06/28 Javascript
js提取中文拼音首字母的封装工具类
2018/03/12 Javascript
vue3.0 CLI - 2.1 -  component 组件入门教程
2018/09/14 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
mock.js模拟前后台交互
2019/07/25 Javascript
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
python中lambda函数 list comprehension 和 zip函数使用指南
2014/09/28 Python
Python编程中用close()方法关闭文件的教程
2015/05/24 Python
利用Python批量生成任意尺寸的图片
2016/08/29 Python
django 解决manage.py migrate无效的问题
2018/05/27 Python
Python如何在循环内使用list.remove()
2020/06/01 Python
中国第一家杂志折扣订阅网:杂志铺
2016/08/30 全球购物
Expedia加拿大官方网站:加拿大最大的在线旅游提供商
2017/12/31 全球购物
报纸媒体创意广告词
2014/03/17 职场文书
见习期自我鉴定范文
2014/03/19 职场文书
模具专业自荐信
2014/05/29 职场文书
节水口号标语
2014/06/19 职场文书
幼师个人总结范文
2015/02/28 职场文书
幼儿园小班教育随笔
2015/08/14 职场文书
CSS3常见动画的实现方式
2021/04/14 HTML / CSS
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript