Javascript 复制和更改函数
我这里有这个代码:Javascript 复制和更改函数,javascript,javascript-events,Javascript,Javascript Events,我这里有这个代码: function slideDown(){ //get the element to slide var sliding = document.getElementById('slideDiv'+x); //add 1px to the height each time sliding.style.height = parseInt(sliding.style.height)+5+'px'; t=setTimeout(slideDow
function slideDown(){
//get the element to slide
var sliding = document.getElementById('slideDiv'+x);
//add 1px to the height each time
sliding.style.height = parseInt(sliding.style.height)+5+'px';
t=setTimeout(slideDown,15);
if (sliding.style.height == "401px"){clearTimeout(t);}
}
它获取元素slideDivx
,并增加其高度,直到它达到401px
我有20个div
s(每个称为slideDiv1
,slideDiv2
,…),我想让div 10启动,然后当它的高度达到大约100px
时,我想让9和11启动,依此类推
我每次都尝试setInterval
并增加x
,但这不起作用,因为它会停止上一个div
动画,并在完成之前移动到下一个。我想那是因为我改变了这个函数,对吗
我想知道的是,我是否必须为每组div
s复制该函数,或者我是否可以自动执行该操作
我必须能够用本机JavaScript而不是jQuery来完成这一切,因为这是一个大学项目。听起来你只需要用一个参数创建slideDown,然后在数组中发送元素集,如下所示:
var elementIntervals = [];
function animateElements(elementArray)
{
for(var j = 0; j < elementArray; j++)
{
(function(element, index)
{
elementIntervals[index] = setTimeout(function()
{
slideDown(element, index);
}, 15 + (100 * index));
})(elementArray[j], j);
}
}
function slideDown(sliding, index)
{
sliding.style.height = parseInt(sliding.style.height)+5+'px';
if(sliding.style.height == "401px")
clearTimeout(elementIntervals[index]);
else
elementIntervals[index] = setTimeout(function()
{
slideDown(sliding, index);
}, 15);
}
var elementinterval=[];
函数动画元素(元素数组)
{
对于(var j=0;j
如果你使用段落,你的问题更容易理解:)大学的东西=>大学的东西??在这种情况下,你不应该自己做,我们可以指出你代码中的错误。。用你现在拥有的东西创建一个JSFIDLE哦,哇,哈哈,我可能已经咬得比我在这里能咀嚼的多了一点,我仍然是一个面条。谢谢你,不过,我会有一个在整理这个尝试,看看我如何得到slide.style.height==“401px”
建议更改为parseInt(slide.style.height,10)>=401
,以防增量高度被修改为不能精确生成401的值