1.offsetLeft,offsetTop

offsetLeft,offsetTop在各浏览器中的表现差异

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>document</title>

<style>

div{ padding:40px 50px;}

#div1 { background:red;}

#div2 { background:blue; position:relative;}

#div3 { background:orange;}

</style>

<script type="text/javascript">

    

    window.onload = function() {

        

        var oDiv3 = document.getElementById('div3');

        /*

            offsetLeft:只读属性 当前 元素以定位父级的距离(偏移值)

                到当前元素的offsetParent的距离

                如果没有定位父级

                    offsetParent -> body

                    offsetLeft[html] -> html

                

                如果有定位父级

                    

                    ie7:如果自己没有定位,那么offsetLeft[Top]是到body的距离

                        如果自己有定位,那么就是到定位父级的距离

                    其它:到定位父级的距离

        */

        alert(oDiv3.offsetLeft);

    }

    

</script>

</head>



<body id="body">

    <div id="div1">

        <div id="div2">

            <div id="div3">

            

            </div>

        </div>

    </div>

</body>

</html>

获取元素结点到页面的绝对距离的方式

<!doctype html>

<html>

<head>

<meta charset="utf-8">

<title>document</title>

<style>

div{ padding:40px 50px;}

#div1 { background:red;}

#div2 { background:blue; position:relative;}

#div3 { background:orange;}

</style>

<script type="text/javascript">

    

    window.onload = function() {

        

        var oDiv3 = document.getElementById('div3');

        //alert(oDiv3.offsetLeft);

        /*var iTop = 0;

        var obj = oDiv3;

        while(obj) {

            alert(obj.id + ':' + obj.offsetTop);

            iTop += obj.offsetTop;

            obj = obj.offsetParent;

            alert(obj + obj.id);

        }*/

        //alert(iTop);

        var p = getPos(oDiv3);

        alert(p.left);

        //获取元素结点到页面的绝对距离的方式

        function getPos(obj) {

            

            var pos = {left:0,top:0};

            

            while(obj) {

                pos.left += obj.offsetLeft;

                pos.top += obj.offsetTop;

                obj = obj.offsetParent;

            }

            return pos;

        }

        

    }

    

</script>

</head>



<body id="body">

    <div id="div1">

        <div id="div2">

            <div id="div3">

            

            </div>

        </div>

    </div>

</body>

</html>

 

你可能感兴趣的:(left)