编辑:如果我的标签被关闭会有所帮助...没有改进唉。
我正在尝试构建的内容相对简单。具有“滚动”图像的老虎机式界面,最终将减速并停止。我正在使用jQuery的.slideUp()函数来实现这一点,并且在应用于单个面板时效果很好。但是当应用于第二个或第三个时,动画开始表现得很奇怪。
试试这个演示,看看我的意思:http://bit.ly/wtiq36
任何人都知道发生了什么事吗?我用来模拟动画的技术非常简单,我只是将所有图像堆叠到另一个上,并将最高的z-index换成最低的z-index-1,将它放回到堆栈的末尾slideUp()已完成。
(p.s。我知道这无限循环,那部分还没有完成:))
这是重要的代码(html& js),或者只是查看该链接上的所有内容。
HTML
<div class="panel one">
<ul>
<li class="item" style="z-index:1"><img src="images/img1.jpg" /></li>
<li class="item" style="z-index:2"><img src="images/img2.jpg" /></li>
<li class="item" style="z-index:3"><img src="images/img3.jpg" /></li>
</ul>
</div>
<div class="panel two">
<ul>
<li class="item" style="z-index:1"><img src="images/img1.jpg" /></li>
<li class="item" style="z-index:2"><img src="images/img2.jpg" /></li>
<li class="item" style="z-index:3"><img src="images/img3.jpg" /></li>
</ul>
</div>
<div class="panel three">
<ul>
<li class="item" style="z-index:1"><img src="images/img1.jpg" /></li>
<li class="item" style="z-index:2"><img src="images/img2.jpg" /></li>
<li class="item" style="z-index:3"><img src="images/img3.jpg" /></li>
</ul>
</div>
和JS
function testit(n){
$(".panel."+n).each(function() {
secondclass = $(this).attr('class').split(' ')[1]
div = ("."+secondclass+" ul li")
if(secondclass != "stats"){
flip(div)
}
})
}
function flip(div){
highest = gethighZ(div)[1]
highest.slideUp(400,'linear',function(){
lowestZ = getlowZ(div)[0]
highest.css("z-index",lowestZ-1)
highest.show()
flip(div)
})
}
//these 2 functions just return highest/lowest zindex divs
function gethighZ(div){
var index = -999999999999
var result = Array()
$(div).each(function() {
var current = parseInt($(this).css("zIndex"), 10)
if(current > index) {
result[0] = current
result[1] = $(this)
index = current
}
});
return result
}
function getlowZ(div){
var index = 99999999999999
var result = Array()
$(div).each(function() {
var current = parseInt($(this).css("zIndex"), 10)
if(current < index) {
result[0] = current
result[1] = $(this)
index = current
}
});
return result
}
答案 0 :(得分:0)
尝试在之前停止所有动画:
highest.stop().slideUp(400,'linear',function(){
lowestZ = getlowZ(div)[0]
highest.css("z-index",lowestZ-1)
highest.show()
flip(div)
})