回答
如果您知道在什麼時間淡入(ahem),那麼只需計算出那段時間(據推測在未來)與我們的時間之間的增量。例如:
var dateNow = new Date();
setTimeout(function() {
doFadingInStuff();
}, dateWanted - dateNow);
如果你當前的時間,並計算所需的事件發生(因此你必須經過的時間,直到你的事件應該發生的量)的未來時,你可以使用setTimeout()
功能在未來的準確時間安排一個函數調用。從這個功能,你會做你的動畫。
假設你只需要一定的時間過程中的東西是可見的(即淡入時,它變成小時,淡出時,它已經不再是小時),你可以這樣做:
// element is assumed to be a jQuery object
var VISIBLE_HOUR=14; // 2:00 PM
function check() {
var isHour=(new Date()).getUTCHours()==VISIBLE_HOUR;
var isVisible=element.is(":visible");
if(isHour!=isVisible) {
element.fadeToggle(1000);
}
}
// We probably don't want to check very frequently...
// You could make it more advanced by checking
// more frequently closer to the hour in which it would be visible.
setInterval(check, 30000);
var eventHour = 16, // 4:00pm
// get the current time as a Date
now = new Date(),
// turn your event time into a Date
eventDate = new Date(now.getFullYear(),
now.getMonth(),
now.getDate(),
eventHour),
// calculate how many MS until your event
eventTimeMS = eventDate - now;
dayInMS = 86400000,
// your event
myEvent = function() {
alert('The time is now!');
};
// adding 24 hours if already past event time today
eventTimeMS = eventTimeMS < 0 ? eventTimeMS + dayInMS : eventTimeMS;
// if currently the right hour, just invoke event
if (eventHour == now.getHours()) {
myEvent();
// otherwise start a timer to invoke your event at the appropriate time
} else {
setTimeout(myEvent, eventTimeMS);
}
有什麼方法可以將時間更改爲小時和分鐘嗎?我認爲這符合我的需求,但爲了測試它,我希望能夠立即看到效果。感謝您的回答:) – monogatari
是的,如果您查看Date對象如何在Javascript中工作,您應該能夠自己弄清楚。 – mVChr
我想你想檢查客戶端的時間,然後淡入或淡出。這就要做到像這樣:
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(function(){
var sunriseHour = 1;
var sunsetHour = 19;
function checkForChange() {
var nowDate = new Date();
var nowHour = nowDate.getHours();
if ((nowHour >= sunriseHour) && (nowHour < sunsetHour)) {
if (sunPosition != 'up') {
sunPosition = 'up';
$('#theSun').fadeIn('slow');
}
} else {
if (sunPosition != 'down') {
sunPosition = 'down';
$('#theSun').fadeOut('slow');
}
}
}
var nowDate = new Date();
var nowHour = nowDate.getHours();
if ((nowHour >= sunriseHour) && (nowHour < sunsetHour)) {
$('#theSun').show();
sunPosition = 'up';
} else {
$('#theSun').hide();
sunPosition = 'down';
}
setTimeout(checkForChange, 1000);
});
</script>
</head>
<body>
<div id="theSun" style="background: yellow; width: 300px; height: 300px; display: none;">
This box is the sun
</div>
</body>
</html>
這是小提琴:http://jsfiddle.net/dCLFA/ –
- 1. android:在某些時間做某事
- 2. 在一天中的某個時間淡入淡出元素
- 3. JavaScript淡入淡出時間
- 4. 計算時間在某些狀態的時間序列數據
- 5. 僅在某些時間顯示iframe
- 6. 在某些時間安排批次
- 7. 自定義某些時刻人性化的持續時間值
- 8. 某些API在iOS上格式化時間增量
- 9. 在隨機時間間隔內淡入/淡出
- 10. 獲取某些UNIX時間的日期
- 11. 當某些日期時間經過
- 12. 如何某些特定時間
- 13. 鏈接在某些時間之間可見
- 14. Ruby On Rails - Resque Scheduler - 在某些時間段之間更頻繁
- 15. android:在某些特定時間間隔內報警remian停止
- 16. 在某些時間間隔的Linux函數調用
- 17. 可以在VS2015之間的某些時間阻止簽入
- 18. 在某些時間段之間更改背景圖片
- 19. Oracle數據庫:在一天的某些時間之間選擇
- 20. jQuery在類之間淡化
- 21. NSDate的時間或!時間在它
- 22. MySQL在某些時區顯示錯誤的時間
- 23. 在某段時間後重新加載某些div
- 24. 在Python中打開某個網頁某些時間
- 25. 讓Rails在某個特定時間發生某些事情
- 26. asp.net - 在某段時間內禁用某些內容
- 27. SQL日期時間轉換爲特定日期,如果在某些時間
- 28. Python和OpenCV - 獲取視頻在某些時間點的持續時間
- 29. 如何在android中關閉應用程序時使用某些時間間隔?
- 30. jQuery淡入淡出divs超過設置的時間間隔
注意,如果超時是長(說24小時後的)這個代碼可能會破壞(在某些瀏覽器火立即)。請參閱http://stackoverflow.com/questions/3468607/why-does-settimeout-break-for-large-millisecond-delay-values –
確保函數在執行後自毀,或者設置一個標誌來指示它已被執行以防止它再次執行。 – bhagyas