JavaScript 基础:scrollTop,offsetTop,scrollLeft,offsetLeft,clientWidth,clientHeight,offsetW...

栏目: JavaScript · 发布时间: 7年前

内容简介:今天,我们要讲的是scrollTop,offsetTop,scrollLeft,offsetLeft,clientWidth,clientHeight,offsetWidth,offsetHeight,scrollWidth,scrollHeight的含义。思路:

今天,我们要讲的是scrollTop,offsetTop,scrollLeft,offsetLeft,clientWidth,clientHeight,offsetWidth,offsetHeight,scrollWidth,scrollHeight的含义。

各个属性的含义

页可见区域宽: document.body.clientWidth;
网页可见区域高: document.body.clientHeight;
网页可见区域宽: document.body.offsetWidth (包括边线的宽);
网页可见区域高: document.body.offsetHeight (包括边线的宽);
网页正文全文宽: document.body.scrollWidth;
网页正文全文高: document.body.scrollHeight;
网页被卷去的高: document.body.scrollTop;
网页被卷去的左: document.body.scrollLeft;
浏览器距离屏幕上: window.screenTop;
浏览器距离屏幕左: window.screenLeft;
屏幕分辨率的高: window.screen.height;
屏幕分辨率的宽: window.screen.width;
屏幕可用工作区高度: window.screen.availHeight;

JavaScript 基础:scrollTop,offsetTop,scrollLeft,offsetLeft,clientWidth,clientHeight,offsetW...

信息提取与总结

  • 对于 height,width 而言 ,client(可见区域) < offset(多个边框) < scroll(多个滚动区域)
  • 对于 top,left 而言 ,offset 指的是相对于第一个 position 不为 static 的父元素(没有就是 document)的偏移距离,scroll 则是被卷去的长度。
  • 对于 screen 而言 ,说的是屏幕的距离和宽高。

面试题:实现图片懒加载

思路:

初始化状态:图片使用默认图片地址;

当图片进入可见区域(图片的 offsetTop < 整个文档的 clientHeight + scrollTop):图片加载真实地址;

代码:

var num = document.getElementsByTagName('img').length;
var img = document.getElementsByTagName("img");
var n = 0; //存储图片加载到的位置,避免每次都从第一张图片开始遍历

lazyload(); //页面载入完毕加载可是区域内的图片

window.onscroll = lazyload;

function lazyload() { //监听页面滚动事件
    var seeHeight = document.documentElement.clientHeight; //可见区域高度
    var scrollTop = document.documentElement.scrollTop || document.body.scrollTop; //滚动条距离顶部高度
    for (var i = n; i < num; i++) {
        if (img[i].offsetTop < seeHeight + scrollTop) {
            if (img[i].getAttribute("src") == "default.jpg") {
                img[i].src = img[i].getAttribute("data-src");
            }
            n = i + 1;
        }
    }
}

如果您觉得本博客帮到了您,就打赏支持一下吧~

JavaScript 基础:scrollTop,offsetTop,scrollLeft,offsetLeft,clientWidth,clientHeight,offsetW...
JavaScript 基础:scrollTop,offsetTop,scrollLeft,offsetLeft,clientWidth,clientHeight,offsetW...

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。

SQL必知必会

SQL必知必会

福达 (Ben Forta) / 钟鸣、刘晓霞 / 人民邮电出版社 / 2013-5-1 / 29.00元

SQL语法简洁,使用方式灵活,功能强大,已经成为当今程序员不可或缺的技能。 本书是深受世界各地读者欢迎的SQL经典畅销书,内容丰富,文字简洁明快,针对Oracle、SQL Server、MySQL、DB2、PostgreSQL、SQLite等各种主流数据库提供了大量简明的实例。与其他同类图书不同,它没有过多阐述数据库基础理论,而是专门针对一线软件开发人员,直接从SQL SELECT开始,讲述......一起来看看 《SQL必知必会》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器