最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

如何使用vue的transition完成滑动过渡

来源:动视网 责编:小OO 时间:2020-11-27 19:35:04
文档

如何使用vue的transition完成滑动过渡

使用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;left: 0;>。
推荐度:
导读使用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;left: 0;>。


这篇文章主要介绍了使用vue的transition完成滑动过渡的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

使用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>
<p id="app">
 <p>{{ message }}</p>
 <p class="wrap">
 <transition name="show">
 <p class="d" v-for="item in list" :key="item.id" v-if="count === item.id">
 {{ item.text }}
 </p>
 </transition>
 </p>
 <button @click="add">add</button>
</p>

<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的话,由于之前的p有一个渐变的消失过程,这个过程中他的位置一直有存在,造成了后面的p无法正确移动到对应位置,所以使用absolute更好。

实在不行可以使用transition的mode属性,设置成out-in,先让前者完成动画,让占据的位置完全消失,使得下一个p可以正常运动,不过这种方式只能先后完成动画,不能同时完成动画。

文档

如何使用vue的transition完成滑动过渡

使用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;left: 0;>。
推荐度:
标签: VUE 过渡 vu
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top