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>

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

  • 相关阅读:
    java基础—GUI编程(一)
    java基础—数组
    java基础—异常处理
    java基础—面向对象
    多线程(二)
    多线程(一)
    ORACLE数据库SQL语句的执行过程
    Jetty直接调试,不用部署,不用弄一些杂七杂八的设置
    (2.1)servlet线程安全问题
    (3)tomcat源代码分析环境的搭建
  • 原文地址:https://www.cnblogs.com/IT-Monkey/p/3345885.html
Copyright © 2011-2022 走看看