js 可以用offsetWidth 获取控件宽度 , 能获取左边框与body的距离吗

js 可以用offsetWidth 获取控件宽度 , 能获取左边框与body的距离吗,第1张

如果元素是body内的一级元素,可以用offsetLeft直接获得其左边距。

如果元素是嵌套的,且父元素中存在容器元素(即具有定位属性的元素,包括绝对定位、相对定位、固定定位),则情况要变复杂了,需要把所有容器的offsetLeft和元素的offsetLeft相加才是最终的左边距:

var obj=documentgetElementById("test"); //假定元素的id为test

var left=objoffsetLeft;

while(obj=objoffsetParent){

   left+=objoffsetLeft;

}

consolelog(left);  //left就是左边距

取父窗口的元素方法:

$(selector, windowparentdocument);

那么你取父窗口的父窗口的元素就可以用:

$(selector, windowparentparentdocument);

类似的,取其它窗口的方法大同小异,

$(selector, windowtopdocument);

$(selector, windowopenerdocument);

$(selector, windowtopframes[0]document);

js:

父窗口:

1、<input type="text" name="currentProjectIDForDetail" id="currentProjectIDForDetail"

disabled

2、<input type="button"

onclick="windowopen('showDetailshtml','','toolsbar=no,menubar=no,resizable=yes,scrollb

ars=yes')" value="查看已有明细" id="showDetail" />

子窗口:

curproject = windowopenerdocumentgetElementById("currentProjectIDForDetail")value;

jQuery:

父窗口:

<input type="text" name="aa" id="aa" />

<input type="button"

onclick="windowopen('sonhtml','','toolsbar=no,menubar=no,resizable=yes,scrollbars=yes')

" value="send" />

子窗口:

<script>

$(function () {

temp=$("#aa",windowopenerdocument)val();

$("#bb")html(temp);

})

</script>

</head>

<body>

<div id="bb"></div>

上次使用了css实现吸顶的方法,这次使用原生js来实现这个效果

做这个效果的前提:掌握offset系列 ,掌握scroll系列

offsetWidth:元素的内容宽+左右padding+左右border

offsetHeight:元素的内容高+上下padding +上下border

offsetTop :当前元素的顶部,到定位父元素的距离,如果没有定位父元素,指的就是元素到body的距离 -----用于获取当前元素在页面中的位置

offsetLeft: 当前元素的左边,到定位父元素的距离,如果没有定位父元素,指的就是元素到body的距离

onscroll:滚动条触发的事件,只要滚动条滚动就会触发,滚动条在谁身上就给谁加滚动条

这是屏幕的滚动距离

documentdocumentElementscrollTop || documentbodyscrollTop

给屏幕添加滚动事件

windowonscroll=function(){

//获取滚动距离,提前给body设置高度

var top=documentdocumentElementscrollTop || documentbodyscrollTop

}

实现效果

向下滚动的时候:

到达一定高度的时候,红色的div会固定在顶部

关于使用inline-block来代替float的讨论也蛮多的,最常说的就是使用inline-block来代替float进行布局,或者使用inline-block来实现元素的居中效果。前面《CSS3制作的分页导航》一文中就是使用的inline-block制作的居中效果,不过留下了一上问题

这种问题的话,首先要确认你的offsetParent是谁,如果它的父级有设置position相对、绝对、fixed的话,那么offsetParent就是这个标签了,offsetLeft\Top就是相对于这个标签的位置了。不过用jquery可以很方便的获得

var offsetobj = $("#aaa")offset();

var left = offsetobjleft;

var top = offsetobjtop;

发现答非所问的人还不少啊

取父窗口的元素方法:$(selector, windowparentdocument);

那么你取父窗口的父窗口的元素就可以用:$(selector, windowparentparentdocument);

类似的,取其它窗口的方法大同小异

$(selector, windowtopdocument);

$(selector, windowopenerdocument);

$(selector, windowtopframes[0]document);

希望对你能有帮助

可以判断一个物体的跟document的左边距离,也就是浏览器左边缘。写一个div 获取这个div之后alert(你的divoffsetLeft)就可以距离浏览器左边的距离。

offset不单单只有Left 还有offsetTop offsetWidth offsetHeight 都是JS里很有用的属性。(PS:此属性当父元素没有position时有效,有父元素时将是判断距离父元素的距离)。

扩展资料:

JavaScript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。

它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

Javascript被归类为直译语言,因为主流的引擎都是每次运行时加载代码并解译。V8是将所有代码解译后再开始运行,其他引擎则是逐行解译(SpiderMonkey解译过的指令暂存,以提高性能,称为实时编译)。

但由于V8的核心部分多数用Javascript撰写(而SpiderMonkey是用C++),因此在不同的测试上,两者性能互有优劣。与其相对应的是编译语言,例如C语言,以编译语言编写的程序在运行之前,必须经过编译,将代码编译为机器码,再加以运行。

参考资料来源:百度百科-javascript

以上就是关于js 可以用offsetWidth 获取控件宽度 , 能获取左边框与body的距离吗全部的内容,包括:js 可以用offsetWidth 获取控件宽度 , 能获取左边框与body的距离吗、js/jquery如何获取父窗口的元素、八行代码js实现吸顶效果等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://www.54852.com/web/9794937.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存