我有以下功能:變量不工作
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