zoukankan      html  css  js  c++  java
  • js中的scroll和offset 的使用比较

    1.offsetTop     :
    当前对象到其上级层顶部的距离.
    不能对其进行赋值.设置对象到页面顶部的距离请用style.top属性.

    2.offsetLeft    :
    当前对象到其上级层左边的距离.
    不能对其进行赋值.设置对象到页面左部的距离请用style.left属性.

    3.offsetWidth   :
    当前对象的宽度.
    与style.width属性的区别在于:如对象的宽度设定值为百分比宽度,则无论页面变大还是变小,style.width都返回此百分比,而offsetWidth则返回在不同页面中对象的宽度值而不是百分比值

    4.offsetHeight :
    与style.height属性的区别在于:如对象的宽度设定值为百分比高度,则无论页面变大还是变小,style.height都返回此百分比,而offsetHeight则返回在不同页面中对象的高度值而不是百分比值

    5.offsetParent  :
    当前对象的上级层对象.
    注意.如果对象是包括在一个DIV中时,此DIV不会被当做是此对象的上级层,(即对象的上级层会跳过DIV对象)上级层是Table时则不会有问题.
    利用这个属性,可以得到当前对象在不同大小的页面中的绝对位置.

    6.scrollLeft    :
    对象的最左边到对象在当前窗口显示的范围内的左边的距离.
    即是在出现了横向滚动条的情况下,滚动条拉动的距离.

    7.scrollTop
    对象的最顶部到对象在当前窗口显示的范围内的顶边的距离.
    即是在出现了纵向滚动条的情况下,滚动条拉动的距离.

    【代码】测试offsetTop和scrollTop的html代码

    <html>
    <head>
    <meta content="text/html;charset=utf-8" http-equiv="content-type"/>
    <script type="text/javascript">
        function test1(){
              var div = document.getElementById("div1");
              document.getElementById("li1").innerHTML = (div.offsetTop)+"px";//div1距离屏幕顶部的距离
              document.getElementById("li2").innerHTML = (div.offsetLeft)+"px";//div1距离屏幕左部的距离
              document.getElementById("li3").innerHTML = (div.scrollTop)+"px";//div1纵向滚动条滚动的距离
              document.getElementById("li4").innerHTML = (div.scrollLeft)+"px";//div1横向滚动条滚动的距离
         }
          function test2(){
              var div = document.getElementById("div2");
              document.getElementById("li5").innerHTML = (div.offsetTop)+"px";//div2距离屏幕顶部的距离
              document.getElementById("li6").innerHTML = (div.offsetLeft)+"px";//div2距离屏幕左部的距离
              document.getElementById("li7").innerHTML = (div.scrollTop)+"px";//div2纵向滚动条滚动的距离
              document.getElementById("li8").innerHTML = (div.scrollLeft)+"px";//div2横向滚动条滚动的距离
         }
         function test3(){
              var div = document.getElementById("div3");
              document.getElementById("li9").innerHTML = (div.offsetTop)+"px";//div3距离屏幕顶部的距离
              document.getElementById("li10").innerHTML = (div.offsetLeft)+"px";//div3距离屏幕左部的距离
              document.getElementById("li11").innerHTML = (div.scrollTop)+"px";//div3纵向滚动条滚动的距离
              document.getElementById("li12").innerHTML = (div.scrollLeft)+"px";//div3横向滚动条滚动的距离
         }
        
    </script>
    
    
    </head>
    <body style="border: 10px solid red;padding:0px 0px;margin:5px 10px">
        <div>
        <DIV style="70%;border-right:1px dashed red;float:left;">
            <div style="float:left;">
                <div id="div1" style="border:5px blue solid;height:400px;200px;overflow:auto">
                    <div style="height: 500px;400px">this is test!</div>
                </div>
                <input type="button" value="CLICK 1" onclick="test1()" style="border: 1px solid purple;height: 25px;"/>
            </div>
            <div>
                <div id="div2" style="border:5px solid yellow;height:400px;200px;overflow:auto">
                    <div style="height: 500px;400px">this is test!</div>
                </div>
                <input type="button" value="CLICK 2" onclick="test2()"style="border: 1px solid purple;height: 25px;"/>
            </div>
            <div style="clear: both;">
                <div id="div3" style="border:5px solid #0080C0;height:400px;200px;overflow:auto;clear:both;">
                    <div style="height: 500px;400px">this is test!</div>
                </div>
                <input type="button" value="CLICK 3" onclick="test3()"style="border: 1px solid purple;height: 25px;"/>
            </div>
        </DIV>
        <DIV style=" 20%;float:right;margin-right:100px">
            <ul>click1结果:
                <li id="li1"></li>
                <li id="li2"></li>
                <li id="li3"></li>
                <li id="li4"></li>
            </ul>
            <ul>click2结果:
                <li id="li5"></li>
                <li id="li6"></li>
                <li id="li7"></li>
                <li id="li8"></li>
            </ul>
            <ul>click3结果:
                <li id="li9"></li>
                <li id="li10"></li>
                <li id="li11"></li>
                <li id="li12"></li>
            </ul>
        </DIV>
        </div>
    </body>
    </html>

    上面就是自己测试用的代码,可以直接拿来测试。

  • 相关阅读:
    unexpected inconsistency;run fsck manually esxi断电后虚拟机启动故障
    centos 安装mysql 5.7
    centos 7 卸载mysql
    centos7 在线安装mysql5.6,客户端远程连接mysql
    ubuntu 14.04配置ip和dns
    centos7 上搭建mqtt服务
    windows eclipse IDE打开当前类所在文件路径
    git 在非空文件夹clone新项目
    eclipse中java build path下 allow output folders for source folders 无法勾选,该如何解决 eclipse中java build path下 allow output folders for source folders 无法勾选,
    Eclipse Kepler中配置JadClipse
  • 原文地址:https://www.cnblogs.com/IT-Monkey/p/3345885.html
Copyright © 2011-2022 走看看