2015-06-28 31 views
0

我有一些麻煩我的網站: 當網站完成了在瀏覽器(onload事件),它應該觸發一個JavaScript函數調用divTimeout1()在外部的JavaScript文件我的HTML-Javascript連接有什麼問題?

加載這是我的代碼:

<script src="js/javascript.js"></script> 
<body onload="divTimeout1()"> 
[...] 

和我javascript.js文件:

function divTimeout1() { 
    var div = document.getElementById("info_pic"); 
    var opacity = div.style.opacity; 
    var inter = setInterval(function f (div, opacity) { 
    if (parseInt(opacity) > 0) { 
     div.style.opacity = (parseInt(div.opacity)-1) + "%" 
    } 
    else { 
     clearInterval(inter) 
    } 
    }, 10) 
} 

是我的JavaScript代碼錯了嗎?或者我是否對腳本的「嵌入」做了錯誤?

感謝提前你的意見...

+4

打開開發人員控制檯並執行一些調試。 –

+0

如果你把腳本直接放在html文件中是否有效?如果是,請檢查您的js文件的路徑。如果不是,請調試您的功能。 – Lance

+0

您的功能有一些錯誤導致問題 – Alex

回答

1

在這種情況下,你應該總是看瀏覽器的控制檯來看看是什麼錯誤信息(如果有任何)。

在你的特定情況下,你應該把你的javascript放在html之外,並從那裏跟蹤,看看divTimeout1函數裏面發生了什麼。

window.onload = function() { 
    divTimeout1(); 
} 

如果您正在使用JQuery,你應該考慮使用$(document).ready()代替,以確保整個HTML是trigerring你的函數之前加載:

$(document).ready(function(){ 
    divTimeout1(); 
}) 

大部分現代瀏覽器有很大的調試工具來跟蹤javascript執行。在Chrome中,您可以按F12 按Ctrl ++然後把一個破發點上要在打破行。

+0

你的意思是「把html帶到HTML之外?」沒有區別 – Alex

+1

@Alex smurf意味着從'body'開始標籤中刪除'onload'屬性。不知道爲什麼他認爲這將有所幫助。 –

+0

正是......從html事件觸發函數(幾乎)是相同的事情,但是更容易跟蹤調試器中發生的情況,當它們直接在javascript中掛鉤時。 –

0

你做得半生不熟的動畫,其可以很容易地通過CSS轉換處理,避免了所有編寫JS似乎給你帶來麻煩的麻煩。試試沿着這些線路:

#info_pic   { transition: opacity 1s; opacity: 0; } 
#info_pic.transition { opacity: 1; } 
function startTransition() { 
    document.getElementById('info_pic').className = 'transition'; 
} 

document.body.onload = startTransition; 

有在原密碼進入這裏太多的問題。但我懷疑這是否相關,因爲使用CSS轉換非常乾淨。

相關問題