• 兼容低版本浏览器的一些方法


    • 页面滚动的兼容方法

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
        <style>
            body {
                height: 3000px;
            }
        </style>
    </head>
    <body>
    
    </body>
    </html>
    <script>
    
        window.onscroll = function () {
            document.title = scroll().top;
        }
    
        /*正常浏览器(除了ie678之外的浏览器)
         window.pageYOffset
         已经声明DTD(标准模式)
         document.documentElement.scrollTop
         未声明 DTD(怪异模式)
         document.body.scrollTop*/
    
    
    
        //这个方法可以给调用者提供 页面被卷去的top值和left值
        function scroll() {
            if (window.pageYOffset != null) {
                return {
                    "top": window.pageYOffset,
                    "left": window.pageXOffset
                };
            } else if (document.compatMode == "CSS1Compat") {
                //说明是标准模式 有DTD
                return {
                    "top": document.documentElement.scrollTop,
                    "left": document.documentElement.scrollLeft
                };
            } else {
                return {
                    "top": document.body.scrollTop,
                    "left": document.body.scrollLeft
                };
            }
        }
    
    </script>
    • 网页可视区client方法

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    
    </body>
    </html>
    <script>
    
        window.onresize = function () {
            document.title = client().width;
        }
    
        /*正常浏览器(包括IE9+)
         window.innerWidth
         标准模式(包括IE9-)
         document.documentElement.clientWidth
         怪异模式
         document.body.clientWidth*/
    
        //返回一个对象 如果用可视区的宽度 就.width 如果用高度就 .height
        function client() {
            if (window.innerWidth != null) {
                return {
                    "width": window.innerWidth,
                    "height": window.innerHeight
                }
            } else if (document.compatMode == "CSS1Compat") {
                //标准模式
                return {
                    "width": document.documentElement.clientWidth,
                    "height": document.documentElement.clientHeight
                }
            } else {
                return {
                    "width": document.body.clientWidth,
                    "height": document.body.clientHeight
                }
            }
        }
    
    
    </script>
    •  兼容ie6、7、8获取鼠标的坐标方法

    function (event) {
            var event = event || window.event;
    
            //event.clientX//相对于客户端的位置
            //event.pageX//相对于页面的位置
            //event.screenX//相对于屏幕的位置
    
            var pageX = event.pageX || event.clientX + document.documentElement.scrollLeft;
            var pageY = event.pageY || event.clientY + document.documentElement.scrollTop;
        }
    •  阻止事件冒泡

    var event = event || window.event;
            if (event && event.stopPropagation) {//短路表达式
                //说明是正常浏览器
                event.stopPropagation();
            } else {
            //兼容ie678
                event.cancelBubble = true;
            }
    •  事件目标兼容性 

      targetId(排除事件触发案例)

    返回当前事件对象的id

    火狐谷歌等 event.target.id

    IE678      event.srcElement.id

     var targetId = event.target ? event.target.id : event.srcElement.id;

     

  • 相关阅读:
    c++中的stack实现
    非虚函数是静态绑定
    函数返回const,以便控制访问
    析构函数为虚函数
    c++中初始化列表顺序和声明顺序一致
    define的误用
    模板就是让编译器帮你写代码
    mysql代码中设置变量
    拼接index
    python import vs from import
  • 原文地址:https://www.cnblogs.com/goweb/p/5484173.html
Copyright © 2020-2023  润新知