使用vue的transition完成滑动过渡的示例代码
2018-06-25 11:26
1021 查看
使用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可以正常运动,不过这种方式只能先后完成动画,不能同时完成动画。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- Vue-cli 使用json server在本地模拟请求数据的示例代码
- vue使用mint-ui实现下拉刷新和无限滚动的示例代码
- 详解vue2.0 transition 多个元素嵌套使用过渡
- vue组件切换时使用过渡(transition)时应该注意的一些事项
- vue2.0使用swiper组件实现轮播的示例代码
- Vue无限滑动周选择日期的组件的示例代码
- 使用 Node.js 模拟滑动拼图验证码操作的示例代码
- vue2.0项目中使用Ueditor富文本编辑器示例代码
- 在Vue 中使用Typescript的示例代码
- Vue中使用Sortable的示例代码
- 使用vue.js实现联动效果的示例代码
- vue中使用gojs/jointjs的示例代码
- 使用vue制作探探滑动堆叠组件的实例代码
- Vue+Jwt+SpringBoot+Ldap完成登录认证的示例代码
- vue 里面使用axios 和封装的示例代码
- vue 项目中使用Loading组件的示例代码
- vue使用drag与drop实现拖拽的示例代码
- vue2.0 transition 多个元素嵌套使用过渡
- vue中使用heatmapjs的示例代码(结合百度地图)
- vue组件中使用iframe元素的示例代码