眾所周產(chǎn)于公元2002年、且當(dāng)前為我國(guó)主流的IE6瀏覽器是不支持CSS2的靜止定位屬性fixed,蛋疼的前端工程師們?yōu)榇税l(fā)明了各種形式的解決方案:
一、常規(guī)js解決之道
這個(gè)最為古老,應(yīng)用廣泛,比如很多跟著滾動(dòng)條走的對(duì)聯(lián)廣告就是使用此方案。缺點(diǎn)就是拖動(dòng)滾動(dòng)條元素抖動(dòng)很厲害,雖然通過(guò)平滑處理可以改善下,效果仍然不理想。不過(guò)要說(shuō)的是此方案雖然視覺(jué)效果差了那么一點(diǎn),穩(wěn)定性是沒(méi)得說(shuō)的。
二、動(dòng)用HTML結(jié)構(gòu)與布局模擬法
此方案曾經(jīng)被163博客應(yīng)用,163把所有的內(nèi)容放在一個(gè)高度100%且滾動(dòng)條設(shè)置為自動(dòng)的容器中,然后再下面設(shè)置一個(gè)絕對(duì)定位的層,這樣這個(gè)絕對(duì)定位的層就可以達(dá)到靜止?fàn)顟B(tài)。原理:你拖動(dòng)的滾動(dòng)條并不是拖動(dòng)的整個(gè)頁(yè)面,而是那個(gè)模擬整頁(yè)的容器,所以容器外的地方都是“靜止”的。詳細(xì):
以下為引用的內(nèi)容: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
這里視覺(jué)效果達(dá)到完美,問(wèn)題有三:
1、需要改變HTML結(jié)構(gòu)(此項(xiàng)不解釋)
2、破壞了用戶體驗(yàn):我曾經(jīng)也試過(guò)此方法,但是我刷新頁(yè)面的時(shí)候滾動(dòng)條不會(huì)停留在原處,這點(diǎn)我不能容忍。
3、破壞js一些事件,如cloudgamer提到會(huì)破壞window的scroll事件,這里至少可以讓N多封裝好的js組件失效。
三、前無(wú)古人的“清空法”之火星方法解決
原理實(shí)在離奇,我解釋不了,并且應(yīng)用的局限性太大了。例子見(jiàn):
以下為引用的內(nèi)容: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" |
四、老技術(shù)新用的expression加fixed背景方案
此方案能夠視覺(jué)上完美的實(shí)現(xiàn)靜止定位。
如對(duì)本文有疑問(wèn),請(qǐng)?zhí)峤坏浇涣髡搲?,廣大熱心網(wǎng)友會(huì)為你解答!! 點(diǎn)擊進(jìn)入論壇