Heim  >  Artikel  >  Web-Frontend  >  js-Methode, um Browserhöhe, Fensterhöhe, Elementgröße und Offset-Attribut zu erhalten

js-Methode, um Browserhöhe, Fensterhöhe, Elementgröße und Offset-Attribut zu erhalten

高洛峰
高洛峰Original
2016-12-06 11:44:141873Durchsuche

Wie unten gezeigt:

screen.width
screen.height
 
 
screen.availHeight //获取去除状态栏后的屏幕高度
screen.availWidth //获取去除状态栏后的屏幕高度

1. Holen Sie sich die Bildschirmgröße über den Browser

2 Die Größe von

//高度
window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight
 
//宽度
window.innerWidth || document.documentElement.clientWidth || document.body.clientWidht
 
/ *
 * window.innerHeight  FF/CH 支持,获取窗口尺寸。
 * document.documentElement.clientHeight  IE/CH支持
 * document.body.client  通过body元素获取内容的尺寸
 
* /

3. Unterschiede in der Bildlaufleistenunterstützung

Für Seiten ohne Bildlaufleistenänderungen gilt in Firefox/IE standardmäßig Think von HTML-Elementen mit Scrollbar-Attributen. Der Körper hat es nicht.

Chrome geht jedoch davon aus, dass der Text über Bildlaufleistenattribute verfügt.

Die Kompatibilität wird also wie folgt geschrieben:

   
document.documentElement.scrollTop || document.body.scrollTop

4. Ermitteln Sie die Größe des Elements

elemnt.offsetWidth
elemnt.offsetHeight
 
// 仅IE5不支持,放心使用吧

* offsetWidth kann die Höhenabmessung des Elements abrufen, einschließlich: Breite + Polsterung[links, rechts] + Rand[links, rechts]

* offsetHeight kann die Breitenabmessung des Elements abrufen, einschließlich: Höhe + padding[top,bottom] + bottom[top,bottom]

5. Das Offset-Attribut des Elements

element.offsetTop //获取元素与其偏移参考父元素顶部的间隔距离
element.offsetLeft //获取元素与其偏移参考父元素左边的间隔距离
element.offsetParent //获取当前元素的参考父元素

*offsetTop kann den Abstand zwischen dem Element und seinem vorherigen ermitteln. Der Versatz der Ebene bezieht sich auf den Abstand von der Oberseite des übergeordneten Elements. Einschließlich: margin[top] + top

*offsetLeft kann den Abstand von der linken Seite des übergeordneten Offset-Referenzelements der vorherigen Ebene ermitteln. Einschließlich: margin[left] + left

* Beachten Sie, dass offsetParent in IE6/7 ist und Kompatibilitätsprobleme mit IE8/FF/CH hat:

in FF/Chrome/IE8+:

Wenn das aktuelle Element positioniert ist, ist das übergeordnete Referenzelement das am nächsten darüber positionierte Element.

Wenn das aktuelle Element nicht positioniert ist, ist body standardmäßig das endgültige übergeordnete Referenzelement.

In IE6/7:

Unabhängig von der Positionierung oder nicht, ist sein übergeordnetes Offset-Referenzelement das übergeordnete Element der vorherigen Ebene.

Im Allgemeinen gilt:

Ob FF/Chrome oder IE, das übergeordnete Referenzelement ist das Body-Element. Daher besteht die kompatible Methode darin, die Versatzposition des aktuellen Elements zum zu ermitteln Körperelementwert.

Kompatibilitätsschreiben

function getOffestValue(elem){
 
    var Far = null;
    var topValue = elem.offsetTop;
    var leftValue = elem.offsetLeft;
    var offsetFar = elem.offsetParent;
 
    while(offsetFar){
      alert(offsetFar.tagName)
      topValue += offsetFar.offsetTop;
      leftValue += offsetFar.offsetLeft;
      Far = offsetFar;
      offsetFar = offsetFar.offsetParent;
    }
    return {'top':topValue,'left':leftValue,'Far':Far}
  }
 
/*
 * top 当前元素距离body元素顶部的距离。
 * left 当前元素距离body元素左侧的距离。
 * Far 返回最终的参考父元素。
*/


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn