最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js完美解決IE6不支持position:fixed的bug

 更新時(shí)間:2015年04月24日 10:51:42   投稿:hebedich  
關(guān)于IE6,雖然它已被微軟拋棄很久了,但是由于大天朝的特殊行情(盜版)對(duì)于前端工程師來(lái)說(shuō),解決IE6兼容position:fixed的問(wèn)題顯得很重要。特別是你需要用到頭尾懸停調(diào)用的時(shí)候

先來(lái)看段代碼

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>IE6 position:fixed bug</title>
<style>
*{padding:0;margin:0}
p{height:2000px}
#gs{border:1px solid #000;position:fixed;right:30px;top:120px}
</style>
<!--[if IE 6]>
<style type="text/css">
html{overflow:hidden}
body{height:100%;overflow:auto}
#gs{position:absolute}
</style>
<![endif]-->
</head>
<body>
<div id="rightform">
<p>11111111111111111</p>
<input id="gs" name="gs" type="text" value="" />
</div>
</body>
</html>

以上這段代碼在網(wǎng)上很常見,通過(guò)設(shè)置html{overflow:hidden}和body{height:100%;overflow:auto}來(lái)實(shí)現(xiàn)ie6下position:fixed效果,但這種辦法有個(gè)缺陷,那就是:這會(huì)使頁(yè)面上原有的absolute、relation都變成fixed的效果,在這里我就不做demo了,如果有懷疑,可以自己去試驗(yàn)一下。

于是我找了下資料,發(fā)現(xiàn)可以通過(guò)一條Internet Explorer的CSS表達(dá)式(expression)來(lái)完美的實(shí)現(xiàn)ie6下position:fixed效果,css代碼如下:

/* 除IE6瀏覽器的通用方法 */
.ie6fixedTL{position:fixed;left:0;top:0}
.ie6fixedBR{position:fixed;right:0;bottom:0}
/* IE6瀏覽器的特有方法 */
* html .ie6fixedTL{position:absolute;left:expression(eval(document.documentElement.scrollLeft));top:expression(eval(document.documentElement.scrollTop))}
* html .ie6fixedBR{position:absolute;left:expression(eval(document.documentElement.scrollLeft+document.documentElement.clientWidth-this.offsetWidth)-(parseInt(this.currentStyle.marginLeft,10)||0)-(parseInt(this.currentStyle.marginRight,10)||0));top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)))}

上面代碼可以直接使用了,如果要設(shè)置元素懸浮邊距,要分別為設(shè)置兩次,比如我要讓某個(gè)元素距頂部10個(gè)像素,距左部也是10個(gè)像素,那就要這樣子寫:

/* 除IE6瀏覽器的通用方法 */
.ie6fixedTL{position:fixed;left:10px;top:10px}
/* IE6瀏覽器的特有方法 */
* html .ie6fixedTL{position:absolute;left:expression(eval(document.documentElement.scrollLeft+10));top:expression(eval(document.documentElement.scrollTop+10))}

這樣一來(lái),IE6下實(shí)現(xiàn)position:fixed的效果解決了,而且也不會(huì)影響到其他的absolute、relation,但還有一個(gè)問(wèn)題,就是懸浮的元素會(huì)出現(xiàn)振動(dòng)

IE有一個(gè)多步的渲染進(jìn)程。當(dāng)你滾動(dòng)或調(diào)整你的瀏覽器大小的時(shí)候,它將重置所有內(nèi)容并重畫頁(yè)面,這個(gè)時(shí)候它就會(huì)重新處理css表達(dá)式。這會(huì)引起一個(gè)丑陋的“振動(dòng)”bug,在此處固定位置的元素需要調(diào)整以跟上你的(頁(yè)面的)滾動(dòng),于是就會(huì)“跳動(dòng)”。
解決此問(wèn)題的技巧就是使用background-attachment:fixed為body或html元素添加一個(gè)background-image。這就會(huì)強(qiáng)制頁(yè)面在重畫之前先處理CSS。因?yàn)槭窃谥禺嬛疤幚鞢SS,它也就會(huì)同樣在重畫之前首先處理你的CSS表達(dá)式。這將讓你實(shí)現(xiàn)完美的平滑的固定位置元素!
然后我發(fā)現(xiàn)background-image無(wú)需一張真實(shí)的圖片,設(shè)置成about:blank就行了。

下面附上完整代碼

/* 除IE6瀏覽器的通用方法 */
.ie6fixedTL{position:fixed;left:0;top:0}
.ie6fixedBR{position:fixed;right:0;bottom:0}
/* IE6瀏覽器的特有方法 */
/* 修正IE6振動(dòng)bug */
* html,* html body{background-image:url(about:blank);background-attachment:fixed}
* html .ie6fixedTL{position:absolute;left:expression(eval(document.documentElement.scrollLeft));top:expression(eval(document.documentElement.scrollTop))}
* html .ie6fixedBR{position:absolute;left:expression(eval(document.documentElement.scrollLeft+document.documentElement.clientWidth-this.offsetWidth)-(parseInt(this.currentStyle.marginLeft,10)||0)-(parseInt(this.currentStyle.marginRight,10)||0));top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)))}

以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。

相關(guān)文章

  • js 遞歸和定時(shí)器的實(shí)例解析

    js 遞歸和定時(shí)器的實(shí)例解析

    本文主要介紹了js遞歸和定時(shí)器的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • echarts圖表無(wú)數(shù)據(jù)/空數(shù)據(jù)如何展示"暫無(wú)數(shù)據(jù)"

    echarts圖表無(wú)數(shù)據(jù)/空數(shù)據(jù)如何展示"暫無(wú)數(shù)據(jù)"

    在開發(fā)echarts的時(shí)候我們不得不考慮數(shù)據(jù)為空的情況,其實(shí)有很多種解決辦法,下面這篇文章主要給大家介紹了關(guān)于echarts圖表無(wú)數(shù)據(jù)/空數(shù)據(jù)如何展示“暫無(wú)數(shù)據(jù)”的相關(guān)資料,需要的朋友可以參考下
    2022-10-10
  • JavaScript中的HTTP通信專家Axios用法探索

    JavaScript中的HTTP通信專家Axios用法探索

    Axios是一個(gè)基于Promise的HTTP客戶端,專為瀏覽器和node.js設(shè)計(jì),本文主要為大家詳細(xì)介紹了Axios的具體使用,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-01-01
  • vue2.0獲取自定義屬性的值

    vue2.0獲取自定義屬性的值

    這篇文章主要為大家詳細(xì)介紹了vue2.0如何獲取自定義屬性的值,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 深入了解JavaScript 的 WebAssembly

    深入了解JavaScript 的 WebAssembly

    這篇文章主要介紹了深入了解JavaScript 的 WebAssembly,它是由 Google , Microsoft , Mozilla , Apple 等幾家大公司合作發(fā)起的一個(gè)關(guān)于 面向Web的通用二進(jìn)制和文本格式 的項(xiàng)目。 ,需要的朋友可以參考下
    2019-06-06
  • JS簡(jiǎn)單獲取并修改input文本框內(nèi)容的方法示例

    JS簡(jiǎn)單獲取并修改input文本框內(nèi)容的方法示例

    這篇文章主要介紹了JS簡(jiǎn)單獲取并修改input文本框內(nèi)容的方法,結(jié)合實(shí)例形式分析了JavaScript針對(duì)頁(yè)面元素的獲取、賦值等相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • layui表格數(shù)據(jù)重載

    layui表格數(shù)據(jù)重載

    這篇文章主要為大家詳細(xì)介紹了layui表格數(shù)據(jù)重載,根據(jù)條件查詢,監(jiān)聽按鈕事件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • javascript鍵盤上下鍵的操作(選擇)

    javascript鍵盤上下鍵的操作(選擇)

    不錯(cuò)的使用鍵盤上下鍵實(shí)現(xiàn)選擇的代碼,方便用戶操作
    2008-06-06
  • 你必須了解的JavaScript中的屬性描述對(duì)象詳解(上)

    你必須了解的JavaScript中的屬性描述對(duì)象詳解(上)

    JavaScript提供了一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),用來(lái)描述對(duì)象的屬性,控制它的行為,比如該屬性是否可寫、可遍歷等等。這個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu)稱為“屬性描述對(duì)象”。本文主要帶大家了解一下JavaScript中你必須了解的屬性描述對(duì)象,需要的可以參考一下
    2022-12-12
  • js實(shí)現(xiàn)本地持久化存儲(chǔ)登錄注冊(cè)

    js實(shí)現(xiàn)本地持久化存儲(chǔ)登錄注冊(cè)

    這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)本地持久化存儲(chǔ)登錄注冊(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08

最新評(píng)論

沁源县| 明光市| 万源市| 长兴县| 泗水县| 宽甸| 高密市| 铁岭县| 会昌县| 淮安市| 武义县| 息烽县| 琼结县| 铁岭县| 克东县| 尼木县| 土默特左旗| 泸水县| 田阳县| 宣恩县| 上思县| 观塘区| 泽普县| 益阳市| 东港市| 贡觉县| 舞阳县| 景泰县| 黑河市| 巴东县| 六盘水市| 从化市| 汪清县| 望江县| 行唐县| 徐水县| 壶关县| 嘉义县| 大方县| 烟台市| 伊金霍洛旗|