IE6下position fixed无效的处理方式(亲测合理)

日期:2021-01-20 类型:科技新闻 

关键词:秀米制作h5,h5如何制作,h5小游戏制作,h5游戏开发,免费的h5制作网站

在网络上找了好长时间,终究寻找1种亲测合理的处理方式。

拷贝编码
编码以下:

<!--[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]-->

启用方式以下:

拷贝编码
编码以下:

<!--[if IE 6]>
<script type="text/javascript">
$(function(){
$('.float').Fixed({x:800,y:200});
});
</script>
<![endif]-->

fixed1般运用有两种状况。

1,垂直居中的弹层:

拷贝编码
编码以下:

<!--[if IE 6]>
<script type="text/javascript">
$(function(){
//centerX和centerY是可视性对话框的高和宽,必须减去本身的的宽度或高宽比的1半才可以垂直居中
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]-->

2,靠右的弹层,相近于返回顶部等:

拷贝编码
编码以下:

<!--[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]-->

这下就妥妥的了。