jsvascript学习(十一)- scroll

scroll家族方法

1、 onscroll —— 当元素的滚动条滚动时触发的事件

  • onscroll事件貌似任何实体元素都可以绑定,这里的实体元素包括DOM元素、window元素、document元素。

  • 用法:element.onscroll=function(){};

2、scrollTop —— 元素滚动条内的顶部隐藏部分的高度。

  • scrollTop属性只有DOM元素才有,window/document没有。

  • 用法1:获取值 var top = element.scrollTop;//返回数字,单位像素

  • 用法2:设置值 element.scrollTop = 200;

3、scrollHeight —— 元素滚动条内的内容高度。

  • scrollHeight同scrollTop属性一样,只有DOM元素才有,window/document没有。
  • 不同的是scrollHeight是只读,不可设置。

    此外还有scrollLeft(网页左边被卷去的内容),scrollWidth(网页正文全文宽),道理是一样的。

  • 实际开发中scrollTop使用较多:


    scroll.png

处理scroll家族浏览器适配问题:

  1. ie9+和最新浏览器
window.pageXOffset;   (scrollLeft)
window.pageYOffset;   (scrollTop)
  1. Firefox浏览器和其他浏览器
document.documentElement.scrollTop;
  1. Chrome浏览器和没有声明DTD<DOCTYPE>
document.body.scrollTop;
  1. 为了兼容所有浏览器可以对调用方式进行封装或者采用兼容写法( || )
/**
 * 获取滚动的头部距离和左边距离
 * scroll().top scroll().left
 * @returns {*}
 */
function scroll() {
    if(window.pageYOffset !== null){
        return {
            top: window.pageYOffset,
            left: window.pageXOffset
        }
    }else if(document.compatMode === "CSS1Compat"){ // W3C
        return {
            top: document.documentElement.scrollTop,
            left: document.documentElement.scrollLeft
        }
    }

    return {
        top: document.body.scrollTop,
        left: document.body.scrollLeft
    }
}

    其他scroll相关方法还有window.scroll(),window.scrollBy(),window.scrollTo(),基本上都是对指定位置的滚动,详情可自行了解

参考:
网易云js课程

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  •   DOM 1 级主要定义的是 HTML 和 XML 文档的底层结构。   DOM2 和 DOM3 级则在这个结构...
    霜天晓阅读 5,366评论 1 3
  • 写在前面: Window和document对象的区别 window对象表示浏览器中打开的窗口 window对象是可...
    给堕落一个理由先阅读 3,973评论 0 3
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,245评论 1 45
  • Element对象对应网页的HTML标签元素。每一个HTML标签元素,在DOM树上都会转化成一个Element节点...
    许先生__阅读 5,853评论 0 2
  •   JavaScript 与 HTML 之间的交互是通过事件实现的。   事件,就是文档或浏览器窗口中发生的一些特...
    霜天晓阅读 8,884评论 1 11

友情链接更多精彩内容