gpt4 book ai didi

jquery - 光滑的轮播 + Velocity.js

转载 作者:行者123 更新时间:2023-12-03 22:22:55 24 4
gpt4 key购买 nike

我想将 Velocity.js 效果结合到 Slick Carousel 插件中。

光滑:http://kenwheeler.github.io/slick/速度:http://julian.com/research/velocity/

这工作正常,但有一个奇怪的副作用:

<script>
$(function() {
$('.teaser').on('init', function(event, slick){
createSequence(0);
});
$('.teaser').on('beforeChange', function(event, slick, currentSlide, nextSlide){
createSequence(nextSlide);
});
$('.teaser').slick({
autoplay: true,
autoplaySpeed: 10000,
});
function createSequence(slideId) {
var $e = $('.slick-slide[data-slick-index='+slideId+']');
$e.velocity("stop");
var mySequence = [
{ e: $e.find('.teaserImg'), p: "transition.swoopIn", o: { duration: 500, sequenceQueue: false } },
{ e: $e.find('.boxTitle'), p: "transition.bounceUpIn", o: { duration: 500, sequenceQueue: false } },
{ e: $e.find('.projectTitle'), p: "transition.bounceLeftIn", o: { duration: 1000, sequenceQueue: false } },
{ e: $e.find('.teaserTitle'), p: "transition.bounceRightIn", o: { duration: 1000, sequenceQueue: false } },
{ e: $e.find('.teaserText'), p: "transition.fadeLeftBigIn", o: { duration: 500, sequenceQueue: false } },
{ e: $e.find('.teaserBtn'), p: "transition.fadeRightBigIn", o: { duration: 1000, sequenceQueue: false } }
];
$.Velocity.RunSequence(mySequence);
}
});
</script>

这是我现在得到的代码。所以我制作了一个 Effect 序列,它是由 beforeChange 钩子(Hook)触发的。

当我转到下一张幻灯片时,它起作用了。但是,当我在幻灯片之间快速移动并且仍在播放一个序列时,一切都会变得困惑并飞到屏幕上。

所以我想确保当前序列在执行下一个序列之前停止。这就是我不知道该怎么做的地方。

有什么建议吗?

最佳答案

使用 $e.velocity("stop", true); 清除动画队列并反转动画。

我所做的是在每个元素上添加一个 css 类 ( .animated ) 以清除和重置动画。

function createSequence(slideId) {
var $e = $('.slick-slide[data-slick-index='+slideId+']');

$e.find('.animated').each(function (index, element) {
$(element).velocity('stop', true);
$(element).velocity('reverse', {duration: 1});
});

var mySequence = [
{ e: $e.find('.teaserImg'), p: "transition.swoopIn", o: { duration: 500, sequenceQueue: false } },
{ e: $e.find('.boxTitle'), p: "transition.bounceUpIn", o: { duration: 500, sequenceQueue: false } },
{ e: $e.find('.projectTitle'), p: "transition.bounceLeftIn", o: { duration: 1000, sequenceQueue: false } },
{ e: $e.find('.teaserTitle'), p: "transition.bounceRightIn", o: { duration: 1000, sequenceQueue: false } },
{ e: $e.find('.teaserText'), p: "transition.fadeLeftBigIn", o: { duration: 500, sequenceQueue: false } },
{ e: $e.find('.teaserBtn'), p: "transition.fadeRightBigIn", o: { duration: 1000, sequenceQueue: false } }
];
$.Velocity.RunSequence(mySequence);
}

来源:Velocity.js stop command

关于jquery - 光滑的轮播 + Velocity.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33367398/

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