[問題] 讓網頁依時間載入不同背景 (js) (已解決!)

看板Web_Design作者 (ΨChloéΨ)時間14年前 (2011/07/17 20:52), 編輯推噓5(5030)
留言35則, 4人參與, 最新討論串1/1
我想要讓網頁的背景隨client的時間改變 6點前用bg1, 6~12點用bg2, 以此類推 以下是放在<body></body>間的語法 早上11點多的時候背景是在bg2沒錯 我以為我成功了 但剛才看 它依然在bg2 沒有跑到我希望它去的bg4... 請問是哪個環節出錯了勒? (我的程度只有自修html和css js是初學~) <script language="javascript"> <!-- var d = new Date(); var h = d.getHours(); if(h<6)document.write('<style type="text/css">body{background-image: url(bg1.jpg); background-position: top left; background-repeat: repeat-y; background-attachment: fixed;}"></style>'); else if(6<h<12)document.write('<style type="text/css">body{background-image: url(bg2.jpg); background-position: top left; background-repeat: repeat-y; background-attachment: fixed;}"></style>'); else if(12<h<18)document.write('<style type="text/css">body{background-image: url(bg3.jpg); background-position: top left; background-repeat: repeat-y; background-attachment: fixed;}"></style>'); else if(18<h<24)document.write('<style type="text/css">body{background-image: url(bg4.jpg); background-position: top left; background-repeat: repeat-y; background-attachment: fixed;}"></style>'); --> </script> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 111.240.52.217

07/17 21:02, , 1F
你這些東西只有在網頁載入的時候執行一次就沒了
07/17 21:02, 1F

07/17 21:17, , 2F
他的意思應該是晚上在載入網頁的時候沒有跳到最後一個else
07/17 21:17, 2F

07/17 21:17, , 3F
而不是要求連續變化?
07/17 21:17, 3F

07/17 22:01, , 4F
都沒有分號...要習慣每一行最後都要加分號
07/17 22:01, 4F

07/17 22:02, , 5F
而且你沒有讓他定時檢查一次 他只會載你載入網頁的時候跑
07/17 22:02, 5F

07/17 22:02, , 6F
一次而已 你應該加個setTimeout讓他定時跑一次
07/17 22:02, 6F

07/17 22:07, , 7F
喔喔 因為我加上分號以後結果沒變 就把分號去掉了orz
07/17 22:07, 7F

07/17 22:09, , 8F
我沒有要他自己變 這樣還要加setTimeout嗎? 我只要他
07/17 22:09, 8F

07/17 22:10, , 9F
在進入網站時背景能夠對應時間就好
07/17 22:10, 9F

07/17 22:10, , 10F
再來就是你的if寫成那樣絕對有很大的問題阿...
07/17 22:10, 10F

07/17 22:10, , 11F
為什麼他只跑一次 還是無法跑到bg3的else if呢?
07/17 22:10, 11F
※ 編輯: unicorncorn 來自: 111.240.52.217 (07/17 22:11)

07/17 22:11, , 12F
請你把不等式分開...像是n > 10 && n < 20這樣
07/17 22:11, 12F

07/17 22:12, , 13F
我大概懂你的意思了 你是希望載入網頁的時候依時間載入
07/17 22:12, 13F

07/17 22:12, , 14F
不同背景 不需要隨時間改動?
07/17 22:12, 14F

07/17 22:13, , 15F
那你這裡的問題在if的寫法 不能寫12<h<24這樣
07/17 22:13, 15F

07/17 22:13, , 16F
必須要分開 if(n > 12 && n < 24) 這樣才對
07/17 22:13, 16F

07/17 22:13, , 17F
我剛才發現了......................
07/17 22:13, 17F

07/17 22:14, , 18F
另外你改變背景的方式 不建議使用document.write喔
07/17 22:14, 18F

07/17 22:14, , 19F
我把時間改成h<6, h<12, h<18, h<24 就可以了!!!
07/17 22:14, 19F

07/17 22:14, , 20F
可以用document.body.style.background = "";這種
07/17 22:14, 20F

07/17 22:14, , 21F
請問S大要用哪種方式改變背景比較好呢?
07/17 22:14, 21F

07/17 22:15, , 22F
喔喔 好 謝謝!!
07/17 22:15, 22F

07/17 22:15, , 23F
再請問一下 h<6, h<12, h<18, h<24 這種寫法
07/17 22:15, 23F

07/17 22:16, , 24F
和h > 12 && h < 18這種寫法 哪種比較好?
07/17 22:16, 24F

07/17 22:17, , 25F
雖然我剛才用第一種方式測出來是成功的 但h<6不是會和
07/17 22:17, 25F

07/17 22:17, , 26F
h<12重疊嘛? (當然也和h<18及h<24重疊)
07/17 22:17, 26F

07/17 22:18, , 27F
你得到他了 所以你必須用h > 12 && h < 24這種寫法
07/17 22:18, 27F

07/17 22:19, , 28F
代表h大於12且h小於24
07/17 22:19, 28F

07/17 22:19, , 29F
那...為什麼重疊的寫法還是成功阿 =..=a
07/17 22:19, 29F

07/17 22:20, , 30F
順序問題阿
07/17 22:20, 30F

07/17 22:20, , 31F
你把順序掉換一下就會不一樣了
07/17 22:20, 31F

07/17 22:20, , 32F
喔喔喔 好 這次我真的得到他了
07/17 22:20, 32F

07/17 22:21, , 33F
謝謝S大!!! \(≧<>≦)/
07/17 22:21, 33F

07/17 22:22, , 34F
document.body.style.background = "css語法";
07/17 22:22, 34F

07/17 22:25, , 35F
好的 明天上班時再改~ 謝謝啦:D
07/17 22:25, 35F
文章代碼(AID): #1E8jiaGW (Web_Design)