gpt4 book ai didi

javascript - 无限水平 slider 显示多张幻灯片,悬停时带有暂停动画

转载 作者:行者123 更新时间:2023-11-30 17:42:26 24 4
gpt4 key购买 nike

我正在尝试制作一个从右向左滑动并一次显示 4 张幻灯片的无限 slider 。我的意思是无限的东西,比如当幻灯片 1 被隐藏时,它会移动到最后一张幻灯片旁边的末尾。

这是我的 html:

<div id="slider">
<div class="slide">slide 1</div>
<div class="slide">slide 2</div>
... up to slide 6
</div>

我是 jquery 的新手,所以我不太清楚如何完成这项工作。

  • 我认为滑动应该在 setInterval() 内。
  • 使用 animate() 制作左边距的动画。为 margin-left 设置负值以将其向左滑动并隐藏。
  • 获取隐藏的幻灯片并将其移动到最后

j查询:

var currentSlide = 0;
setInterval(function(){
$('.slide').animate({marginLeft:-$('.slide').width()});
$('.slide').eq(currentSlide++).insertAfter($('.slide').last())
}, 2000);

每张幻灯片都包含带有背景图像的文本。这就是我现在所拥有的,滑动很丑陋。我还想设置我想用 jquery 显示多少,这样我就不必编辑我的 css,我还想集成一些东西,比如当你将鼠标悬停在 slider 上时暂停。请帮忙,谢谢。

最佳答案

我认为您很清楚如何完成这项工作。但是您的代码需要更正。

您正在为所有 '.slide' 制作动画,因为它们都是内联的,您只需为第一张幻灯片制作动画,之后的所有内容都会随之而来:

$('.slide').first().animate({marginLeft:-$('.slide').width()});

而且您还同时对其进行动画处理和移动。您只需在动画完成后移动它。

$('.slide').first().animate({
marginLeft:-$('.slide').width()
}, 'slow', function(){
//once completely hidden, move this slide next to the last slide
//and reset the margin-left to 0
$(this).appendTo($(this).parent()).css({marginLeft: 0});
});

这是 jsfiddle .


要解决滑动问题,我们需要为幻灯片添加一个包装器,并根据所有幻灯片的总宽度设置其宽度。

新标记:

<div id="slider">
<div id="slide-container">
<div class="slide">slide 1</div>
<div class="slide">slide 2</div>
</div>
</div>

jQuery:

var w = $('#slider').width() / 4;
var l = $('.slide').length;
//set each slide width
$('.slide').width(w);
//set the container width to fix the animation sliding issue
$('#slide-container').width(w * l)

要在鼠标悬停在 slider 上时添加暂停,您只需要 clearInterval 并将其重置以继续:

function slider(){
$('.slide').first().animate({
marginLeft: -w
}, 'slow', function () {
$(this).appendTo($(this).parent()).css({marginLeft: 0});
});
}

//setInterval on DOM ready
var timer = setInterval(slider, 2000);

$('#slider').hover(function(){
//mouse in, clearinterval to pause
clearInterval(timer);
},function(){
//mouse out, setinterval to continue
timer = setInterval(slider, 2000);
});

查看此更新 jsfiddle .

关于javascript - 无限水平 slider 显示多张幻灯片,悬停时带有暂停动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20780815/

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