在CSS Expression中使用JavaScript表達(dá)式。CSS屬性根據(jù)JavaScript表達(dá)式的計(jì)算結(jié)果來設(shè)置。CSS Expression在其它瀏覽器中不起作用,因此在跨瀏覽器的編碼中單獨(dú)針對(duì)IE設(shè)置時(shí)會(huì)比較有用。從IE5開始支持CSS Expression。我們看下面的代碼:background-color: expression( (new Date()()).getHours()%2 ? "#F00" : "#00F" );上面的代碼是使用CSS Expression,實(shí)現(xiàn)隔一個(gè)小時(shí)切換一次背景顏色。
CSS Expression的問題就在于它的計(jì)算頻率要比想象的多出很多。不僅僅是在頁(yè)面顯示和縮放時(shí),就是在頁(yè)面滾動(dòng)、乃至移動(dòng)鼠標(biāo)時(shí)都會(huì)要重新計(jì)算一次。給CSS Expression增加一個(gè)計(jì)數(shù)器可以跟蹤表達(dá)式的計(jì)算頻率。在頁(yè)面中隨便移動(dòng)鼠標(biāo)都可以輕松達(dá)到10000次以上的計(jì)算量。一個(gè)減少CSS Expression計(jì)算次數(shù)的方法就是使用一次性的表達(dá)式,它在第一次運(yùn)行時(shí)將結(jié)果賦給指定的樣式屬性,并用這個(gè)屬性來代替CSS Expression。如果樣式屬性必須在頁(yè)面周期內(nèi)動(dòng)態(tài)地改變,使用事件句柄來代替CSS表達(dá)式是一個(gè)可行辦法。如果必須使用CSS Expression,一定要記住它們要計(jì)算成千上萬次并且可能會(huì)對(duì)你頁(yè)面的性能產(chǎn)生影響。不要讓您的用戶感覺打開你的頁(yè)面,機(jī)器會(huì)變的很慢。
新聞熱點(diǎn)
疑難解答
圖片精選