2012-08-28 106 views
1

這很簡單,但我不是程序員。我只是用一般的解決問題的技巧蠻力代碼。這不是工作。該代碼被設置爲隨機化背景圖像,並且它可以工作。但是,它已經被設置爲等待頁面完全加載,所以它的時間太不一致了。據我瞭解,document.ready會給我更一致(更快)的時間,但我似乎無法使它工作。這裏的工作版本:準備好隨機背景

<script type="text/javascript"> 
    function changeImg(imgNumber) { 
     var myImages = [ 
      "http://static.tumblr.com/0obftwk/u0Am8xfjf/streetarturbaninphilade.jpg", 
      "http://static.tumblr.com/0obftwk/Xmym8xfet/artmuseumarea.jpg", 
      "http://static.tumblr.com/0obftwk/znNm8xf9e/rowhouseswestphilly.jpg", 
      "http://static.tumblr.com/0obftwk/af1m8xf87/phillyvista.jpg", 
      "http://static.tumblr.com/0obftwk/ydIm8xf74/chinagatephiladelphia.jpg", 
      "http://static.tumblr.com/0obftwk/8kCm8xf41/broadritner.jpg" 
     ]; 
     var imgShown = document.body.style.backgroundImage; 
     var newImgNumber =Math.floor(Math.random()*myImages.length); 
     document.body.style.backgroundImage = 'url('+myImages[newImgNumber]+')'; 
    } 

    window.onload=changeImg; 
</script> 
+0

你可能想'document.onl oad'而不是'window.onload' – Endophage

+0

也許你可以在body標籤後面插入內聯,並立即調用changeImg(),而不是將它附加到發生(太)遲的事件處理程序。酷圖像,順便說一句。 – chelmerich

+0

謝謝,Endophage,但只是將'窗口'更改爲'文檔'不起作用。也許你的建議比我解釋的還要多。 // Chelmerisch,首先,這些圖片是「我正在建造'關於費城的(基於Tumblr的)網站的」Lorem ipsum「。他們不是我的,當我有我自己合適的圖像時,我會替換他們。至於你的建議,我明白了這個概念,但我不確定我會如何執行它。在我發佈之前,我嘗試刪除onLoad,但腳本完全停止工作。再次,我不是程序員,也沒有背景知識來理解爲什麼。 – user1593984

回答

0

如果圖像的列表,你之前加載頁面的CSS堅持你的形象引用,然後只需更改的className上document.body的知名

.bgClass1 {background-image: url(http://static.tumblr.com/0obftwk/u0Am8xfjf/streetarturbaninphilade.jpg)} 

...等等...

<body class="bgClass1"> 

否則,建立與JS預加載

+0

嗯......如果我理解這一點,你的命題意味着一個更簡單的腳本,幾乎隨機化'身體'的分類。它的要點是什麼?如果是這樣,那麼爲什麼這樣更好?有一個簡單的理由嗎? – user1593984

+0

你可以依靠CSS來加載圖像,而不是用javascript預加載器來瞎搞 - 你基本上解決了你沒有加載的問題。再一次,這隻有在你知道你包含的圖像時纔有效。祝你好運! –