我有兩個圖像。我想顯示一個圖像,如果它的一天,另一個圖像,如果它晚上。這應該使用JavaScript來完成。例如,從8:00到00:00顯示一個圖像,從00:00到8:00顯示另一個圖像。這可能使用JavaScript?按當前時間更改圖片
回答
您可以使用經常運行的setInterval()
。您想要的精度取決於您。
在這個例子中,它運行的每一分鐘:
HTML
<img id='theImage' src='images/day.jpg' />
的JavaScript
// setInterval makes the code run every xx milliseconds
// if you just want it to run, delete this top line,
// and the last line
setInterval(function() {
// Create a new Date object with the current date/time
var date = new Date();
// Get a reference to the image in the HTML using its ID attribute
var img = document.getElementById('theImage');
// getHours() gets the hour of the day from 0 - 23,
// so the way it is set up, if the hour is less
// than 8, the first block will run, otherwise
// the second block will run
if (date.getHours() < 8) {
// This simply checks the src attribute of the image to see
// if it already contains the word "night". That way we
// don't update the src unless we need to.
// You could also eliminate this check if you're not going
// to use setInterval.
if(img.src.indexOf('night') < 0) {
// So if the hour is less than 8, and the
// src did not contain "night", then we need
// to change the src to the "night" image.
img.src = 'images/night.jpg'
}
} else {
// Same as above, only it executes if the hour was greater
// than 8.
// Again, you could eliminate the check for the word
// "day" if you're not going to use setInterval.
if(img.src.indexOf('day') < 0) {
img.src = 'images/day.jpg'
}
}
// Run the setInteval every 60000 milliseconds
// Delete this line as well if you're not using setInterval
},60000);
可以擺脫setInterval()
的,如果你不需要它改變時,時鐘改變。 (只發生一天兩次,所以setInterval()
可能是矯枉過正。)
如果是這樣的話,只需刪除第一行和最後一行。然後它會在頁面加載時運行。
編輯:從你的評論,如果你要的時間間隔從15:00改爲16:00(反之亦然),你只需更改測試小時,這個if()
:
if(date.getHours() < 15 || date.getHours() >= 16) {
// set one image
} else {
// set the other image
}
編輯:要修改的不是圖像的src一個div的類,這樣做:
更改getElementById()
行指向你的<div>
,如:
var div = document.getElementById('theDiv');
然後更新,而不是src
的className
屬性,如:
div.className = "someNewClass";
請注意,這將覆蓋整個階級屬性,所以如果你的元素有幾個類,我們需要更加小心添加/刪除類。
如果要保持所測試的圖像,看它是否已經有了合適的圖像,那麼你會做的DIV類似代碼:
if(div.className.indexOf('someUniqueWord') < 0) {...
同樣,你也不需要做這些檢查。它只是使得元素是而不是,除非絕對必要。
由於我對javascript不熟悉,這段代碼對我來說似乎有點複雜......如果間隔時間爲15:00至16:00和16:00至15:00,應如何更改此代碼。 謝謝 – 2010-07-08 11:45:14
@Levani - 對不起,我會添加一些意見澄清。 – user113716 2010-07-08 12:00:39
謝謝。有沒有辦法改變div類而不是圖像? – 2010-07-08 12:35:49
如果你給圖像一個ID,那麼你可以根據用戶瀏覽器的時間修改它的src屬性。
var img = document.createElement('img');
calcSrc();
setInterval(calcSrc, 60000);
document.body.appendChild(img); // place image
function calcSrc() {
img.src = new Date().getHours() < 8 ? 'night.jpg' : 'day.jpg';
}
我是你的代碼中,J-P
- calcSrc的幾件事情,沒有引號,括號,例如 頗爲驚訝'calcSrc()'
- img在 放置在文檔中後保持其處理。
例如
<html>
<head>
<script>
var img,tid;
window.onload=function() {
img = document.createElement('img');
calcSrc();
tId=setInterval(calcSrc, 60000);
document.body.appendChild(img); // place image
}
var day = 'day.jpg'
var night = 'night.jpg'
function calcSrc() {
img.src = (new Date.getHours()<8)?night:day;
}
</script>
</head>
<body>
</body>
</html>
- 1. 按住按鈕時更改圖片
- 2. 圖片中的當前時間?
- 3. 當按下時更改TextBlock前景
- 4. 當按下按鈕時更改視圖
- 5. 如何用Javascript更改當前時間
- 6. 基於當前時間更改Label.Text?
- 7. 如何根據當前時間自動改變特色圖片
- 8. 當div點擊時更改圖片
- 9. 單擊按鈕時更改圖片
- 10. 更改背景圖片textView按下時
- 11. 單擊按鈕時更改圖片
- 12. 在確定的時間更改圖片
- 13. 按時間更改背景圖片網址
- 14. 如何將圖像名稱更改爲當前時間戳php?
- 15. 當點擊圖片時更改背景圖片
- 16. 如何將當前時間更改爲用戶時間
- 17. 當更改頁面背景時圖片更改可怕
- 18. jquery - 當圖片源發生更改時更改元素屬性
- 19. 按鈕按下 - 更改圖片來源
- 20. WP7如何創建一個按鈕,當按下時更改背景圖片
- 21. 圖片查看特定時間間隔後更改圖像
- 22. 當前時間= UTC +/-(UTC +/-當前時間)
- 23. 查看YouTube影片當前時間
- 24. 更改圖像按鈕當按下並釋放圖像時
- 25. 滾動時更改圖片
- 26. Android - 如何更改按鈕編程時按下背景圖片?
- 27. Rails時區:設置Time.zone不會更改時間。當前
- 28. Eclipse:更改當前工作空間
- 29. 與設定的時間間隔更改背景圖片
- 30. 在某些時間段之間更改背景圖片
爲什麼要用Javascript?你可以使用服務器端語言嗎? – 2010-07-08 11:13:48