用jquery的height方法获得的元素高度怎么为0

用jquery的height方法获得的元素高度怎么为0,第1张

height()

-获取匹配元素集合中的第一个元素的当前计算高度值 或 设置每一个匹配元素的高度值。

-css('height') 和 height()之间的区别是后者返回一个没有单位的数值,前者是返回带有完整单位的字符串。当一个元素的高度需要数学计算的时候推荐使用height() 方法 。

-这个方法同样能计算出window和document的高度。

$(window)height(); // returns height of browser viewport

$(document)height(); // returns height of HTML document

注意:在绝对定位和给定display:block时,虽然style和script标签用width() 或 height()也将报告一个值,强烈建议不要在这些标签中调用这些方法。这是一种不好的做法,结果也证明是不可靠的。

innerHeight()

-为匹配的元素集合中获取第一个元素的当前计算高度值,包括padding,但是不包括border。

-这个方法返回元素的高度,包括顶部和底部的padding,单位是像素。

-这个方法不适用于window and document对象,可以使用height()代替。

outerHeight()

-获取元素集合中第一个元素的当前计算高度值,包括padding,border和选择性的margin。返回一个整数(不包含“px”)表示的值 ,或如果在一个空集合上调用该方法,则会返回 null。

-outerHeight( [includeMargin ] ):include是一个布尔值,表明是否在计算时包含元素的margin值。

-这个方法不适用于window 和 document对象,可以使用height()代替。

在template中定义ref,与setup中命名要一样

在setup中要定义ref与template中名字一样,在onMounted中去 *** 作元素,因为setup是相当于create,那是页面还没渲染,所以要在onmounted中去 *** 作。要记得将元素return 不然没效果

需要一个DIV根据里面的元素自动适应高度,所以,肯定无法给这个DIV定义一个实际高度。而随便嵌套一个DIV却发现并不适应高度。这事就郁闷了。下面给出一些方法。大致的例子是: <div id="main">

<div id="content"></div>

</div>当Content内容多时,即使main设置了高度100%或auto。在不同浏览器下还是不能完好的自动伸展。内容的高度比较高了,但容器main的高度还是不能撑开。我们可以通过三种方法来解决这个问题。

增加一个清除浮动,让父容器知道高度。请注意,清除浮动的容器中有一个空格。

<div id="main">

<div id="content"></div>

<div style="font: 0px/0px sans-serif;clear: both;display: block"> </div>

</div> 增加一个容器,在代码中存在,但在视觉中不可见。

<div id="main">

<div id="content"></div>

<div style="height:1px; margin-top:-1px;clear: both;overflow:hidden;"></div>

</div> 增加一个BR并设置样式为clear:both。

<div id="main">

<div id="content"></div>

<br style="clear:both;" />

</div>以上三个方法都不是最好的解决方法,因为在程序代码观念中是提倡尽量不要添加无意义的标签代码。现在,你可以用下面的方法来实现DIV自适应高度效果#main {height:100%;

本篇主要介绍Web环境中屏幕、浏览器及页面的高度、宽度信息。

1介绍:介绍页面的容器(屏幕、浏览器及页面)、物理尺寸与分辨率、展示等内容。

2屏幕信息:介绍屏幕尺寸信息;如:屏幕、软件可用以及任务栏的高度和宽度。

3浏览器信息:介绍浏览器尺寸信息;如:浏览器、内部页面以及工具栏的高度和宽度。

4页面信息:介绍HTML页面尺寸信息;如:body总的、展示的高度和宽度。

一个页面的展示,从外到内的容器为:屏幕、浏览器以及页面本身。

HTML元素展现在页面内,页面展现在浏览器内,而浏览器展现在屏幕内。

通过Js的一些对象可以获取这些容器的高度、宽度。

容器的尺寸是指当前分辨率下的高度、宽度,而不是物理高度、宽度。

如:一个22寸的显示器,屏幕分辨率为1366 768,那么获取到的屏幕高度为1366px,宽度为768px。

screenheight : 屏幕高度。

screenwidth : 屏幕宽度。

screenavailHeight : 屏幕可用高度。即屏幕高度减去上下任务栏后的高度,可表示为软件最大化时的高度。

screenavailWidth : 屏幕可用宽度。即屏幕宽度减去左右任务栏后的宽度,可表示为软件最大化时的宽度。

任务栏高/宽度 : 可通过屏幕高/宽度 减去 屏幕可用高/宽度得出。如:任务栏高度 = screenheight - screenavailHeight 。

windowouterHeight : 浏览器高度。

windowouterWidth : 浏览器宽度。

windowinnerHeight : 浏览器内页面可用高度;此高度包含了水平滚动条的高度(若存在)。可表示为浏览器当前高度去除浏览器边框、工具条后的高度。

windowinnerWidth : 浏览器内页面可用宽度;此宽度包含了垂直滚动条的宽度(若存在)。可表示为浏览器当前宽度去除浏览器边框后的宽度。

工具栏高/宽度 : 包含了地址栏、书签栏、浏览器边框等范围。如:高度,可通过浏览器高度 - 页面可用高度得出,即:windowouterHeight - windowinnerHeight。

bodyoffsetHeight : body总高度。

bodyoffsetWidth : body总宽度。

bodyclientHeight : body展示的高度;表示body在浏览器内显示的区域高度。

bodyclientWidth : body展示的宽度;表示body在浏览器内显示的区域宽度。

滚动条高度/宽度 : 如高度,可通过浏览器内页面可用高度 - body展示高度得出,即windowinnerHeight - bodyclientHeight。

有两种办法可以实现这个功能:

1、采用设置高度的值为百分比,如

height:100%;

此时高度就会随着父元素的高度二改变。

2、采用使用js获取页面的高度来实现高度的动态变化

如获取:页可见区域高: documentbodyclientHeight

然后获取该样式高度后设置该高度为以上值。补充:

网页可见区域宽: documentbodyclientWidth

网页可见区域高: documentbodyclientHeight

网页可见区域宽: documentbodyoffsetWidth (包括边线的宽)

网页可见区域高: documentbodyoffsetHeight (包括边线的高)

网页正文全文宽: documentbodyscrollWidth

网页正文全文高: documentbodyscrollHeight

网页被卷去的高: documentbodyscrollTop

网页被卷去的左: documentbodyscrollLeft

网页正文部分上: windowscreenTop

网页正文部分左: windowscreenLeft

屏幕分辨率的高: windowscreenheight

屏幕分辨率的宽: windowscreenwidth

屏幕可用工作区高度: windowscreenavailHeight

屏幕可用工作区宽度: windowscreenavailWidth

注意:一般实际开发过程中一般是不设置高度为具体的值的,一般是设置高度随着内容的多少而改变。

采用JavaScript来控制iframe元素的高度是iframe高度自适应的关键,同时由于JavaScript对不同域名下权限的控制,引发出同域、跨域两种情况。

由于客户端js使用浏览器的同源安全策略,跨域情况下,被嵌套页面如果想要获取和修改父页面的DOM属性会出现权限不足的情况,提示错误:Permission denied to access property 'document'。这是因为除了包含脚本的文档载入的主机外,同源策略禁止客户端脚本链接到其他任何主机或者访问其他任何主机的数据。这意味着访问一个web服务的javascript代码通常只有在它也驻留在Web服务本身所在的同一个服务器的时候才有用。

所以在跨域情况下,我们遇到的问题就是:父窗口无法获得被嵌套页面的高度,而且被嵌套页面也无法通过驻留在其服务器上的js修改父窗口Dom节点的属性。所以我们需要一个媒介,来获得被嵌套页面的高度同时又能修改主界面iframe节点的高度。

思路:现有主界面main在域a下,被嵌套页面B在域b下,被嵌套页面B又嵌套一个在域a下的中介页面A。当用户打开浏览器访问mailhtml的时候载入B,触发B的onload事件获取其自身高度,然后B载入A,并将高度值作为参数赋值给A的location对象。这样A就可以通过locationhash获得B的高度。(location是javascript里边管理地址栏的内置对象,比如locationhref就管理页面的url,用locationhref=url就可以直接将页面重定向url。而locationhash则可以用来获取或设置页面的标签值。比如>

关键代码:

iframe主页面:mainhtml

<iframe id="iframeB"  name="iframeB" src=">

iframe嵌套页面:Bhtml

<iframe id="iframeA" name="iframeA" src="" width="0" height="0" style="display:none;" ></iframe> 

<script type="text/javascript">

function sethash(){

hashH = documentdocumentElementscrollHeight; //获取自身高度

urlC = ">

中介页面:Ahtml

<script>

function pseth() {

var iObj = parentparentdocumentgetElementByIdx_x_x_x('iframeB');//A和main同域,所以可以访问节点

iObjH = parentparentframes["iframeB"]frames["iframeA"]locationhash;//访问自己的location对象获取hash值

iObjstyleheight = iObjHsplit("#")[1]+"px";// *** 作dom

}

pseth();

</script>

同域情况下就不用多说了,直接在被嵌套的页面B中获取其自身高度并 *** 作其父窗口main的dom属性即可。

获取浏览器显示区域(可视区域)的高度:$(window)height();获取浏览器显示区域(可视区域)的宽度:$(window)width();获取页面的文档高度$(document)height();获取页面的文档宽度:$(document)width();浏览器当前窗口文档body的高度:$(documentbody)height();浏览器当前窗口文档body的宽度:$(documentbody)width();获取滚动条到顶部的垂直高度(即网页被卷上去的高度)$(document)scrollTop();获取滚动条到左边的垂直宽度:$(document)scrollLeft();获取或设置元素的宽度:$(obj)width();获取或设置元素的高度:$(obj)height();某个元素的上边界到body最顶部的距离:objoffset()top;(在元素的包含元素不含滚动条的情况下)

$('h2#answers-title')offset()top-$(document)scrollTop();

$('h2#answers-title')offset()top h2#answers-title元素相对于document的垂直位置

$(document)scrollTop() 整个文档被上卷的高度

2者差就是$('h2#answers-title')相对于当前浏览器视图窗口的垂直位置

以上就是关于用jquery的height方法获得的元素高度怎么为0全部的内容,包括:用jquery的height方法获得的元素高度怎么为0、vue3 setup中获取元素高度、手机浏览器获取自适应 div 的显示高度等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存