zoukankan      html  css  js  c++  java
  • IE6下fixed失效的解决方法

    在网上找了好久,终于找到一种亲测有效的解决方法。

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

    fixed一般应用有两种情况。

    一,居中的弹层:

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

    这下就妥妥的了。

  • 相关阅读:
    SQL易错总结1
    线程池使用总结
    多线程的上下文切换
    SQL 排序按指定内容优先排序
    System x 服务器制作ServerGuide U盘安装Windows Server 2008 操作系统 --不格式化盘
    错误“该伙伴事务管理器已经禁止了它对远程/网络事务的支持”解决方案
    sql server 2012 链接服务器不能链接sql server 2000的解决方案 ,
    sqlserver2005版本的mdf文件,还没有log文件,
    BCP SQL导出EXCEL常见问题及解决方法;数据导出存储过程
    Nginx
  • 原文地址:https://www.cnblogs.com/xiaoyouzi/p/3919249.html
Copyright © 2011-2022 走看看