IE6下position fixed失效的解決方法(親測有效)
發(fā)布時間:2014-08-19 10:25:41 作者:佚名
我要評論

做個浮動什么的,其他瀏覽器都正常,唯獨IE6下fixed失效,有關(guān)這個問題的解決方法如下
在網(wǎng)上找了好久,終于找到一種親測有效的解決方法。
<!--[if IE 6]>
<script type="text/javascript">
(function($) {
jQuery.fn.Fixed = function(options) {
var defaults = {
x:0,
y:0
};
var o = jQuery.extend(defaults, options);
var isIe6 = !window.XMLHttpRequest;
var html= $('html');
if (isIe6 && html.css('backgroundAttachment') !== 'fixed') { //防止抖動
html.css('backgroundAttachment','fixed')
.css('backgroundImage','url(about:blank)');
};
return this.each(function() {
var domThis=$(this)[0];
var objThis=$(this);
if(isIe6){
objThis.css('position' , 'absolute');
domThis.style.setExpression('left', 'eval((document.documentElement).scrollLeft + ' + o.x + ') + "px"');
domThis.style.setExpression('top', 'eval((document.documentElement).scrollTop + ' + o.y + ') + "px"');
} else {
objThis.css('position' , 'fixed').css('top',o.y).css('left',o.x);
}
});
};
})(jQuery)
</script>
<![endif]-->
調(diào)用方法如下:
<!--[if IE 6]>
<script type="text/javascript">
$(function(){
$('.float').Fixed({x:800,y:200});
});
</script>
<![endif]-->
fixed一般應(yīng)用有兩種情況。
一,居中的彈層:
<!--[if IE 6]>
<script type="text/javascript">
$(function(){
//centerX和centerY是可視窗口的高和寬,需要減去自身的的寬度或高度的一半才能居中
var screenHeight=document.documentElement.clientHeight,
screenWidth=document.documentElement.clientWidth,
floatHeight=$('.float').height(),
floatWidth=$('.float').width();
$('.float').Fixed({
x:(screenWidth-floatWidth)/2,
y:(screenHeight-floatHeight)/2
});
});
</script>
<![endif]-->
二,靠右的彈層,類似于回到頂部等:
<!--[if IE 6]>
<script type="text/javascript">
$(function(){
//centerX和centerY是可視窗口的高和寬,高度自定義,寬度為屏幕寬度-浮層寬度
var screenHeight=document.documentElement.clientHeight,
screenWidth=document.documentElement.clientWidth,
floatHeight=$('.float').height(),
floatWidth=$('.float').width();
$('.float').Fixed({
x:screenWidth-floatWidth,
y:300
});
});
</script>
<![endif]-->
這下就妥妥的了。
復(fù)制代碼
代碼如下:<!--[if IE 6]>
<script type="text/javascript">
(function($) {
jQuery.fn.Fixed = function(options) {
var defaults = {
x:0,
y:0
};
var o = jQuery.extend(defaults, options);
var isIe6 = !window.XMLHttpRequest;
var html= $('html');
if (isIe6 && html.css('backgroundAttachment') !== 'fixed') { //防止抖動
html.css('backgroundAttachment','fixed')
.css('backgroundImage','url(about:blank)');
};
return this.each(function() {
var domThis=$(this)[0];
var objThis=$(this);
if(isIe6){
objThis.css('position' , 'absolute');
domThis.style.setExpression('left', 'eval((document.documentElement).scrollLeft + ' + o.x + ') + "px"');
domThis.style.setExpression('top', 'eval((document.documentElement).scrollTop + ' + o.y + ') + "px"');
} else {
objThis.css('position' , 'fixed').css('top',o.y).css('left',o.x);
}
});
};
})(jQuery)
</script>
<![endif]-->
調(diào)用方法如下:
復(fù)制代碼
代碼如下:<!--[if IE 6]>
<script type="text/javascript">
$(function(){
$('.float').Fixed({x:800,y:200});
});
</script>
<![endif]-->
fixed一般應(yīng)用有兩種情況。
一,居中的彈層:
復(fù)制代碼
代碼如下:<!--[if IE 6]>
<script type="text/javascript">
$(function(){
//centerX和centerY是可視窗口的高和寬,需要減去自身的的寬度或高度的一半才能居中
var screenHeight=document.documentElement.clientHeight,
screenWidth=document.documentElement.clientWidth,
floatHeight=$('.float').height(),
floatWidth=$('.float').width();
$('.float').Fixed({
x:(screenWidth-floatWidth)/2,
y:(screenHeight-floatHeight)/2
});
});
</script>
<![endif]-->
二,靠右的彈層,類似于回到頂部等:
復(fù)制代碼
代碼如下:<!--[if IE 6]>
<script type="text/javascript">
$(function(){
//centerX和centerY是可視窗口的高和寬,高度自定義,寬度為屏幕寬度-浮層寬度
var screenHeight=document.documentElement.clientHeight,
screenWidth=document.documentElement.clientWidth,
floatHeight=$('.float').height(),
floatWidth=$('.float').width();
$('.float').Fixed({
x:screenWidth-floatWidth,
y:300
});
});
</script>
<![endif]-->
這下就妥妥的了。
相關(guān)文章
- 這篇文章主要介紹了淺談原生頁面兼容IE9問題的解決方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起2020-12-16
新版chrome瀏覽器設(shè)置允許跨域的實現(xiàn)
這篇文章主要介紹了新版chrome瀏覽器設(shè)置允許跨域的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起2020-11-30css hack之\9和\0就可能對hack IE11\IE9\IE8無效
每次設(shè)計一張網(wǎng)頁或一個表單,都被各種瀏覽器的兼容問題傷透腦筋,尤其是IE家族。在做兼容性設(shè)計時,我們往往會使用各種瀏覽器能識別的獨特語法進(jìn)行hack,從而達(dá)到各種瀏覽2020-03-20css區(qū)分ie8/ie9/ie10/ie11 chrome firefox的代碼
這篇文章主要介紹了css區(qū)分ie8/ie9/ie10/ie11 chrome firefox的代碼,需要的朋友可以參考下2020-03-20- 這篇文章主要介紹了解決CSS瀏覽器兼容性問題的4種方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)2020-02-28
- 這篇文章主要介紹了常見的瀏覽器兼容性問題(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)2020-02-20
- 這篇文章主要介紹了border-radius IE8兼容處理的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)2020-02-12
- 這篇文章主要介紹了淺談遇到的幾個瀏覽器兼容性問題,詳細(xì)的介紹了幾種我遇到的問題和解決方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-09-26
- 這篇文章主要介紹了base64圖片在各種瀏覽器的兼容性處理的相關(guān)資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-14
對常見的css屬性進(jìn)行瀏覽器兼容性總結(jié)(推薦)
這篇文章主要介紹了對常見的css屬性進(jìn)行瀏覽器兼容性總結(jié)(推薦)的相關(guān)資料,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-20