我有以下功能:变量不工作
function slideDown() {
//get the element to slide
sliding = document.getElementById('slideDiv1');
//add 1px to the height each time
sliding.style.height = parseInt(sliding.style.height)+1+'px';
t = setTimeout(slideDown,30);
if (sliding.style.height == "401px") {
clearTimeout(t);
}
}
被称为这个函数中:
function addDiv(nextImageSlide) {
//finds the src attribute of the image nested in the Li
elemChild = nextImageSlide.firstChild;
imageSrc = elemChild.getAttribute('src');
//loops and creates six divs which will be the slices. adds background property etc
for (i = 0, j = 0, k = 1; i< = 19; i++, j++, k++) {
var newDiv = document.createElement('div');
newDiv.setAttribute('class', 'new-div');
newDiv.id='slideDiv' + k;
newDiv.style.height = '1px';
newDiv.style.background = 'url(' + imageSrc +') scroll no-repeat - '+39.5 * j + 'px 0';
var a = document.getElementById('content');
a.appendChild(newDiv);
}
slideDown();
}
被称为定义nextImageSlide另一个函数内。它后来删除了它所做的所有div。
这个想法是为图片库。当用户点击下一个按钮时,我希望下一张图片的片段向下滑动以显示下一张图片。然后将这些切片拿走并揭示新图像。
我想要这样的:http://workshop.rs/projects/jqfancytransitions/。
这是一个任务,所以我们必须编写所有的代码自己,这是我能想到复制它的最佳方式。唯一的问题是,我不断收到错误:
'sliding is null. sliding.style.height = parseInt(sliding.style.height)+1+'px';'
无论我做什么,我都摆脱不了它。问题是,如果我将滑动定义为完全不同的id(例如,我在所有内容之外创建了一个随机的小div),它就可以工作。
这个错误显示了当我尝试访问div时,它只是让它引发了一个饥饿症状。 任何人都看到我的代码中的任何错误? 干杯
我们展示你的HTML。如果没有包含id =“slideDiv1”'的对象,'sliding'将为空。另外,你并没有把'var'放在你的函数前面的很多局部变量中,这使得它们成为全局变量。这通常是一件坏事,可能会导致其他类型的错误。这些例子是:滑动,elemChild和imageSrc。 – jfriend00
我没有看到任何明显的错误(除了汽车/ var事物Marc B指出),但尽管它不应该导致你的错误,你应该用'var'声明_all_变量,否则'i,j, k,elemChild,imageSrc,sliding和t'将是全局的。另外,为什么设置超时,然后检查是否立即清除它?为什么不用if来决定是否把它放在第一位呢?你也不需要'j',因为它总是和'I'一样。 – nnnnnn
好吧,我想通了它为什么不工作,但感谢你的家伙帮助其他事情。我并没有把var放在前面,并且搞砸了其他一些东西,所以现在全部修好了,欢呼!我正在检查是否清除它,因为它是动画的div的高度。所以它增长,然后当它达到401px停止增加高度。所以基本上我想要的功能循环,直到高度达到401px。 – Matt