以下是我要创建的示例......
假设有两个div,每个div包含一些其他HTML / Content(其他div)。我希望在页面加载视图中有一个这样的div,然后在几秒钟后(比如说5),将第二个div滚动到与第一个div相同的位置,然后无限期地重复该过程,直到用户离开页面。
有问题的页面和元素可以在http://paysonfirstassembly.com/找到。我试图用一类dynamicPanel动画左侧边栏。这些div中至少有三个,它们的内容长度几乎匹配。
感谢大家的帮助。我是一个非常新的客户端程序员,并感谢这个社区对新开发人员的尊重。
答案 0 :(得分:3)
Working demo of the following →
这是我刚制作的一个简单的jQuery插件,它将向上滑动第一个div并将其放在列表的末尾。我已经对下面的代码进行了评论,以便进一步解释,这样可以让您开始使用,并根据需要进行调整,并了解jQuery:
// the plugin declaration
$.fn.rotateEach = function ( opts ) {
// cache the element set
var $this = this,
// create some default options
defaults = {
delay: 5000
},
// pass the defaults to settings with any override options
settings = $.extend(defaults, opts),
// repeated rotation function
rotator = function ( $elems ) {
// slide up first element in set
$elems.eq(0).slideUp(500, function(){
// detach first element
var $eq0 = $elems.eq(0).detach();
// append it to wrapper
$elems.parent().append($eq0);
// fade it back in
$eq0.fadeIn();
// call rotator on reselection of elements
// since first element was moved to end
setTimeout(function(){ rotator( $( $elems.selector ) ); },
settings.delay);
});
};
// initial rotator call
setTimeout(function(){ rotator( $this ); }, settings.delay);
};
// invoke plugin
$('.dynPanelContent').rotateEach();
如果您想更改延迟,可以将其作为选项传递:
$('.dynPanelContent').rotateEach({ delay: 7500 }); // 7.5 seconds
注意:我还在.dynPanelOpener
中移动了.dynPanelTitle
和.dynPanelContent
,以便将它们包含在动画中。