gpt4 book ai didi

javascript - Vue.js中触发过渡的方式

转载 作者:行者123 更新时间:2023-12-05 06:16:39 25 4
gpt4 key购买 nike

我正在尝试在 Vue 中进行转换,但我对如何触发它有疑问。

我看到转换通常由 v-show 或 v-if 触发。但是还有另一种执行方式吗?

我要

・将我的元素的不透明度保持为 0.2,并在触发过渡时变为 1

・我还使用 Element.getBoundingClientRect() 来决定应该发生过渡的区域。

但显然,v-show 或 v-if 不允许我这样做,因为它们会使元素消失或显示:无(所以我无法通过 .getBoundingClientRect() 测量元素)

这是我的模板

    <ul class="outer-wrapper" >
<li class="slide one" >
<div>
<a href="#">
<transition name="fade-animation">
<img v-show="show" ref="slider1" src="../assets/test.png">
</transition>
</a>
</div>
</li>
.
.
.
</ul>

和 Vue 脚本

export default {
name: 'test',
data(){
return{
show: false
}
},
methods: {
opacityChange: function () {

let slider = this.$refs.slider1.getBoundingClientRect();

let sliderLeft = Math.floor(slider.left);
let sliderRight = Math.floor(slider.right);
let centerPoint = Math.floor(window.innerWidth / 2);
let sliderWidth = slider.width;


if(sliderRight <= centerPoint + sliderWidth && sliderLeft >= centerPoint - sliderWidth) {
this.show = true;
} else {
this.show = false;
}
}
}
}

和CSS


.fade-animation-enter,
.fade-animation-enter-leave-to {
opacity: 0.2;

}
.fade-animation-enter-to,
.fade-animation-enter-leave {
opacity: 1;

}
.fade-animation-enter-active,
.fade-animation-enter-leave-active {
transition: opacity, transform 200ms ease-out;
}

感谢您的帮助:)

最佳答案

我认为您可以为此使用通常的 CSS 转换(或在某些情况下使用 JS),而不是 Vue 转换。 Vue 转换用于列表/出现/消失。在任何其他情况下,最好使用 CSS/JS。他们写了更多关于状态转换的文章 here

关于javascript - Vue.js中触发过渡的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62005655/

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