gpt4 book ai didi

jquery:如何循环一个div

转载 作者:行者123 更新时间:2023-12-01 00:35:02 26 4
gpt4 key购买 nike

使用jquery,如何自动连续滚动div?喜欢本网站的新闻和专题部分:http://animalsasia.org/ 。此外,当您将鼠标悬停在 slider 上时,它会停止滚动,直到您将鼠标悬停为止。

有没有一个 jquery 插件可以做到这一点?任何帮助将不胜感激。

最佳答案

我写了一些工作示例。有live example on JsFiddle 。这个想法是创建一个position=relative的容器,并将带有文本的div放入其中。此外,我们需要创建文本副本,以避免显示文本最后一部分时出现空白。 jQuery animate() 函数将完成剩下的工作。

HTML:

<div class="news_container">
<div class="news">
<div class="text">
Long text
</div>
</div>
</div>

CSS:

.news_container {
border: 1px solid black;
width:150px;
height: 300px;
overflow: hidden;
position: relative;
padding: 3px;
}

.news {
position: absolute;
left: 0px;
top: 0px;
}

JavaScript:

(function($, undefined) {
$.fn.loopScroll = function(p_options) {
var options = $.extend({
direction: "upwards",
speed: 60
}, p_options);

return this.each(function() {
var obj = $(this).find(".news");
var text_height = obj.find(".text").height();
var start_y, end_y;
if (options.direction == "downwards") {
start_y = -text_height;
end_y = 0;
} else if (options.direction == "upwards") {
start_y = 0;
end_y = -text_height;
}

var animate = function() {
// setup animation of specified block "obj"
// calculate distance of animation
var distance = Math.abs(end_y - parseInt(obj.css("top")));

//duration will be distance / speed
obj.animate(
{ top: end_y }, //scroll upwards
1000 * distance / options.speed,
"linear",
function() {
// scroll to start position
obj.css("top", start_y);
animate();
}
);
};

obj.find(".text").clone().appendTo(obj);
$(this).on("mouseover", function() {
obj.stop();
}).on("mouseout", function() {
animate(); // resume animation
});
obj.css("top", start_y);
animate(); // start animation
});
};
}(jQuery));

$(".news_container").loopScroll();

选项:

  • direction(“向下”或“向上”)- 文本移动的方向;
  • 速度 - 移动速度。

以下是使用此插件与选项的示例:

$("#example3").loopScroll();
$("#example4").loopScroll({ speed: 120 });
$("#example1").loopScroll({ direction: "downwards" });
$("#example2").loopScroll({ direction: "downwards", speed: 30 });

关于jquery:如何循环一个div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10220195/

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