讓我解釋一下:CSS表明是否「緊張」-div過去,現在或未來?
我開發它運行了一個星期,對多個事件在任何給定時間,音樂節的基於HTML5的移動應用程序,我想包括特徵,顯示事件已經過去了。因此,如果節日在星期一到星期天運行,並且星期二當前中午,那麼星期一的任何活動都將變爲灰色,任何在星期二中午之前完成的活動也將變爲灰色(以及當前正在週二中午將突出顯示)。
該應用程序有多個頁面和多種查看事件的方式,但在任何情況下,事件的詳細信息都將包含在div內;
我正在尋找一個整潔的算法/技術來標記一個div(其中有一個相關的日期時間)爲無論是在過去,現在,還是將來
選項,我認爲:
- 掛上了「緊張」級上的每一個相關的div,以及一個屬性,表示開始和結束時間(類似
start="yyyy-mm-dd-hh-mm"
),並在頁面加載我通過與一流緊張所有div使用javascript循環和看看開始 -和end-*課程並添加eithe基於此類的'過去','現在'或'未來'類,而在CSS中,我只對這三個類進行樣式設置。
僞jQuery代碼(在頁面加載):
$('.tensed').each(function() {
$(this).removeClasses('past', 'present', 'future')
.addClass(myGetTenseClassForThisTimeFunc($(this).attr('start'));
}
我不喜歡這種方法是什麼需要使用代碼來應用類,這需要一定的處理時間和功率,只是似乎笨重,難吃的和笨重
- 對事件的開始和結束時間各相關DIV日期時間類:
start-yyyy-mm-dd-hh-mm
一ndend-yyyy-mm-dd-hh-mm
(例如,start-2015-10-13-10-43
)。然後,以編程方式,我猜我每分鐘都會調整範圍內所有可能類的樣式。
僞jQuery代碼:
setTimeout(function() {
dt = getDateTimeAsTimestampFunc();
dt_start = getFestivalStartTime();
dt_end = getFestivalEndTime();
dt_loop = dt_start;
while(dt_loop<dt_end) {
if (dt_loop<dt) $(dt_loop).css(*make it greyedout*);
if (dt_loop==dt) $(dt_loop).css(*make it highlighted*);
incrementDateTimeByOneMinute(dt_loop);
}
}, 1000);
類似的東西 - 但有點聰明的開始和結束日期。這比第一種選擇不那麼優雅。
我覺得必須有解決這個更優雅的方式,但我還沒有想出什麼比上述更好 - 我最感興趣的是一個純CSS解決方案
請包括僞代碼來解釋你的答案...