我已經搜索並看到大多數有此問題的人傳遞函數調用而不是函數名稱,例如:setInterval(myFunc(),100)而不是setInterval(myFunc, 100)JS setInterval()僅在動畫不透明時運行一次
但我不是,它仍然不會工作...我也看到很多人說你需要parseFloat上不透明才能使它工作,我試過了,它仍然得到同樣的結果...
功能runSubMenu1()似乎無論運行只是一個時間我是否包括如果(i.style.opacity == 1)條款或不
不知道該從哪裏出發?建議?
<script type="text/javascript">
var run;
var runOpt;
function openSubMenu1(item) {
runOpt=item;
run = setInterval(runSubMenu1,100);
}
function runSubMenu1() {
var i=document.getElementById('menu-1-'+runOpt);
if(i.style.opacity==1){clearInterval(run);}
else{i.style.opacity+=.1;}
}
</script>
編輯:取得由jfriend00提到的變化,和不透明度具有與頁面發送原始CSS 0集的數值,之後1次迭代的透明度似乎是0.1
一個錯誤是'clearInterval(runSubMenu1)'應該是'clearInterval(run)'。另外,你真的應該把'var i'加到'runSubMenu1'上。另外,'i.style.opacity'最初可能沒有值,除非你明確地將它設置在DOM對象上,因爲'i.style'不返回默認值或樣式表值 - 只有在DOM對象上顯式設置的值。 – jfriend00