gpt4 book ai didi

vue.js - 使用Vuejs动画创建向左滑动效果

转载 作者:搜寻专家 更新时间:2023-10-30 22:08:36 24 4
gpt4 key购买 nike

我读过 this official关于 Vuejs 动画的文档。但是使用它的 css hooks,我只能使元素以淡入淡出和不同的持续时间出现/消失。

<div id="demo">
<button v-on:click="show = !show">
Toggle
</button>
<transition name="fade">
<p v-if="show">hello</p>
</transition>
</div>


.fade-enter-active, .fade-leave-active {
transition: opacity .5s
}
.fade-enter, .fade-leave-to /* .fade-leave-active in <2.1.8 */ {
opacity: 0
}

如何使用Vuejs Animation制作滑动效果?喜欢那个 here .是否可以?请提供一些示例代码。

最佳答案

你完全可以用 VueJS 做到这一点。看看下面的例子。您可以看到两个示例,一个是您的案例采用的代码(使其滑动)。另一个是一个简单的图像 slider ,它以 3 秒的间隔循环遍历图像数组。

这里要注意的重要一点是,我们将图像元素包装在 for 循环中以强制销毁该元素,否则您的元素将不会从 DOM 中删除并且不会转换(虚拟 DOM)。

为了更好地理解 VueJS 中的转换,建议您查看 getting started guide - transition section .

new Vue({
el: '#demo',
data: {
message: 'Click for slide',
show: true,
imgList: [
'http://via.placeholder.com/350x150',
'http://via.placeholder.com/350x151',
'http://via.placeholder.com/350x152'
],
currentImg: 0
},
mounted() {
setInterval(() => {
this.currentImg = this.currentImg + 1;
}, 3000);
}
})
#demo {
overflow: hidden;
}

.slide-leave-active,
.slide-enter-active {
transition: 1s;
}
.slide-enter {
transform: translate(100%, 0);
}
.slide-leave-to {
transform: translate(-100%, 0);
}

.img-slider{
overflow: hidden;
position: relative;
height: 200px;
width: 400px;
}

.img-slider img {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right:0;
}
<!DOCTYPE html>
<html>
<head>
<title>VueJS 2.0 - image slider</title>
<link rel="stylesheet" href="style.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
</head>

<body>
<div id="demo">
<button v-on:click="show = !show">
Toggle
</button>
<transition name="slide">
<p v-if="show">{{message}}</p>
</transition>
<h3>
Img slider
</h3>
<transition-group tag="div" class="img-slider" name="slide">
<div v-for="number in [currentImg]" v-bind:key="number" >
<img :src="imgList[Math.abs(currentImg) % imgList.length]"/>
</div>
</transition-group>
</div>
<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
<script src="script.js"></script>
</body>

</html>

关于vue.js - 使用Vuejs动画创建向左滑动效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42866098/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com