账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    offsetParent的使用:offsetParent是自身和祖先节点都需要定位的额,但是着段代码中都没有定位存在过?
    31
    0

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>无标题文档</title>
    <style>
    body {margin: 0;}
    #ul1 {width: 1080px; margin: 100px auto 0;}
    li { width: 247px; list-style: none; float: left; margin-right: 10px; }
    li div {border: 1px solid #000; padding: 10px; margin-bottom: 10px;}
    li div img { width: 225px; display: block;}
    </style>
    <script src="ajax.js"></script>
    <script>
    window.onload = function() {

    var oUl = document.getElementById('ul1');
    var aLi = oUl.getElementsByTagName('li');
    var iLen = aLi.length;
    var iPage = 1;
    var b = true;

    //初始化数据处理
    getList();

    function getList() {
    ajax('get','getPics.php','cpage=' + iPage,function(data) {

    var data = JSON.parse(data);

    if ( !data.length ) {
    //后续没有数据了
    return ;
    }

    for ( var i=0; i<data.length; i++ ) {

    //获取高度最短的li
    var _index = getShort();

    var oDiv = document.createElement('div');
    var oImg = document.createElement('img');
    oImg.src = data[i].preview;
    oImg.style.width = '225px';
    oImg.style.height = data[i].height * ( 225 / data[i].width ) + 'px';
    oDiv.appendChild( oImg );
    var oP = document.createElement('p');
    oP.innerHTML = data[i].title;
    oDiv.appendChild( oP );

    aLi[_index].appendChild( oDiv );

    }

    b = true;

    });
    }

    window.onscroll = function() {

    var _index = getShort();
    var oLi = aLi[_index];

    var scrollTop = document.documentElement.scrollTop || document.body.scrollTop;

    if ( getTop( oLi ) + oLi.offsetHeight < document.documentElement.clientHeight + scrollTop ) {

    if ( b ) {
    b = false;
    iPage++;
    getList();
    }

    }

    }

    function getShort() {
    var index = 0;
    var ih = aLi[index].offsetHeight;
    for (var i=1; i<iLen; i++) {
    if ( aLi[i].offsetHeight < ih ) {
    index = i;
    ih = aLi[i].offsetHeight;
    }
    }
    return index;
    }

    function getTop(obj) {
    var iTop = 0;
    while(obj) {
    iTop += obj.offsetTop;//问题:offsetParent是自身和祖先节点都需要定位的额,但是着段代码布局中都没有定位存在过怎么可以使用?
    obj = obj.offsetParent;
    }
    return iTop;
    }

    }
    </script>
    </head>

    <body>
    <ul id="ul1">

     <li></li>
       <li></li>
        <li></li>
        <li></li>
    </ul>

    </body>
    </html>

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • offsetParent 是 HTML 元素(如 divspan 等)的一个属性,用于指定元素的祖先节点(即直接的父节点)。在这个属性中,如果元素的祖先节点存在,则说明该元素是祖先节点的子元素。

      但是,如果代码中没有定义 offsetParent,那么它将默认为 null。也就是说,元素本身并不需要定位,只需要知道它是由哪个祖先节点定位的。

      例如:

      ```html

      Hello, world!

      ```

      在这个例子中,div 元素不需要定位,因为它本身就是根节点。但是,如果代码中定义了 offsetParent,那么它将被赋予一个值,例如 null,然后 div 元素就可以通过 offsetParent 属性来定位了。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部