Jquery 如何获得DIV离左边是多少像素

Jquery 如何获得DIV离左边是多少像素,第1张

使用Jquery 获取DIV相对浏览器的边距,也就是绝对X,Y坐标,可以用offset():

$('div')offset()left;

示例如下:

创建Html元素

<div class="top">

本层相对浏览器的左边距为50px

<div class="inner">本层相对上一层的左边距为20px,所以相对浏览器边距为70px</div>

</div>

设置css样式

{margin:0;}

divtop{

width:500px;height:150px;

margin:50px;

background:green;

color:white;

}

divinner{

width:450px;height:100px;line-height:100px;

margin:20px;

background:red;

color:white;

}

编写jquery代码

$(function(){

$("divinner")click(function() {

alert("相对窗口左边距:"+$(this)offset()left);

});

})

观察效果

windowonload=function(){

        waterfall();

        windowonscroll=function(){

            

    var parent=documentgetElementById("main");

    var boxs=getByClass(parent,"box");

    var scrollH=documentdocumentElementscrollTop||documentbodyscrollTop;

       var documentH=scrollH+documentdocumentElementclientHeight;

    var    lastH=boxs[boxslength-1]offsetTop+Mathfloor(boxs[boxslength-1]offsetHeight/2);

       /763/

     

        if(lastH-350<documentH){      //这里的lastH不减掉350,就无法进入if语句???

                                /465/

dataInt={"data":[{"src":"1jpg"},{"src":"2jpg"},{"src":"3jpg"},{"src":"7jpg"},{"src":"4jpg"},{"src":"5jpg"},{"src":"6jpg"}]};

for(var i=0;i<dataIntdatalength;i++){

        var divB=documentcreateElement("div");

        divBclassName="box";

        parentappendChild(divB);

        var divP=documentcreateElement("div");

        divPclassName="pic";

        divBappendChild(divP);

        myimg=documentcreateElement("img");

        myimgsrc="/images/"+dataIntdata[i]src;

        

        divPappendChild(myimg);

}

waterfall();

}

}

}

function waterfall(){

    

var oParent=documentgetElementById("main");

var boxs=getByClass(oParent,"box");

var boxW=boxs[0]offsetWidth;

var num=Mathfloor(documentdocumentElementclientWidth/boxW);

oParentstylecssText="width:"+boxWnum+"px;margin:0 auto;";

  

    boxHarr=new Array();

    for(var i=0;i<boxslength;i++){

        if(i<num){

            boxHarrpush(boxs[i]offsetHeight);

        }else{

           

            var minH=Mathminapply(null,boxHarr);

            var minHindex=getminHindex(boxHarr,minH);

            boxs[i]styleposition="absolute";

            boxs[i]styletop=minH+"px";

            boxs[i]styleleft=minHindexboxW+"px";

            //boxs[i]styleleft=boxs[minHindex]offsetLeft+"px";

            boxHarr[minHindex]=boxHarr[minHindex]+boxs[i]offsetHeight;

        }

    }

}

function getByClass(parent,clsName){

    a=parentgetElementsByTagName('');

    var arr=[];

    for(var i=0;i<alength;i++){

        if(a[i]className==clsName){

            arrpush(a[i]);

        }

    }

    return arr;

}

function getminHindex(arr,minH){

    

    for(var i in arr){

        if(arr[i]==minH)

            return i;    

    }

}

源码中position是这样写的:

position: {

my: 'center',

at: 'center',

of: window,

collision: 'fit',

// ensure that the titlebar is never outside the document

using: function(pos) {

var topOffset = $(this)css(pos)offset()top;

if (topOffset < 0) {

$(this)css('top', postop - topOffset);

}

}

},

你要是想自己指定可以试试 using 那个function,我身边没有环境,不能帮你试了。

只有在DOM元素被渲染了之后,才能获取元素实际的宽高。

换句话说,如果元素还未插入DOM树里,就不可能走到渲染这一步,更不可能拿到元素的宽和高。

综上所述,你只能通过在DOM中插入元素,之后再获取已经渲染好的元素的宽高。

以上就是关于Jquery 如何获得DIV离左边是多少像素全部的内容,包括:Jquery 如何获得DIV离左边是多少像素、vue里,我用jq去获取元素的offsettop出现问题、jquery ui dialog 对话框的初始位置 position: 怎么设定等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9499245.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存