美文网首页Web
JS操作html元素中的scroll

JS操作html元素中的scroll

作者: 追逐_chase | 来源:发表于2019-08-06 15:25 被阅读53次
web.jpeg
之前有说过offset的一些属性值,

offset系列:

  • offsetLeft:距离左边位置的值
  • offsetTop:距离上面位置的值
  • offsetWidth:元素的宽(有边框)
  • offsetHeight:元素的高(有边框)
scroll (内容区域的真实情况)
  • scrollWidthscrollHeight
    • 如果div里面没有内容,那么上面属性就是div默认的宽度高度
    • 如果div里面有内容,并且内容区域大于div指定高度或者宽度,获取的scrollWidthscrollHeight就是内容的真实宽度和高度
<script>

    var btn = document.getElementById("btn");
    var box = document.getElementById("box");
    btn.onclick = function(){
       // scrollWidth 内容的真实宽度
      //如果div里面没有内容,就是div默认的宽度
        console.log(box.scrollWidth);
        //如果有内容,并且内容区域大于div默认的高度,就是内容区域的高度
        console.log(box.scrollHeight);

        //
        
    }

</script>

image.png
  • scrollTopscrollLeft 是内容区域滚动出去的距离
    image.png

页面的滚动事件onscroll

不同的浏览器在在滚动事件中获取到滚动的距离是不一样的

  • 谷歌浏览器 和没有声明 DTD <DOCTYPE >:使用 document.body.scrollTop;获取向上滚动的距离
  • 火狐 和其他浏览器 使用: document.documentElement.scrollTop; 获取向上滚动的距离
  • ie9+ 和 最新浏览器 都认识 window.pageXOffset pageYOffset (scrollTop)
  • document.compatMode判断是否怪异浏览器 CSS1Compat 已经声明,BackCompat 未声明

 function getScroll(){
    return{
        top:window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop || 0,
        left:window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0
    }
 }

//或者 

function scroll() {
    if (window.pageXOffset || window.pageYOffset){
      return {
        left: window.pageXOffset,
        top: window.pageYOffset
      };
    }else if (document.compatMode === 'CSS1Compat'){
      // w3c标准
      return {
        left: document.documentElement.scrollLeft,
        top: document.documentElement.scrollTop
      }
    }else {
      // 怪异
      return {
        left: document.body.scrollLeft,
        top: document.body.scrollTop
      }
    }
  }

相关文章

  • JS操作html元素中的scroll

    之前有说过offset的一些属性值, offset系列:offsetLeft:距离左边位置的值offsetTop:...

  • client scroll的特点

    CSS JS HTML scroll的特点 scrollHeight scrollHeight表示元素的总高度,包...

  • web自动化_dom

    js不能直接操作html元素,比如要修改元素的样式,需要通过dom对象操作html元素js ->dom对象->调用...

  • Jquery介绍

    JQuery是一个JS库,包含了以下特性: HTML 元素选取 HTML 元素操作 CSS 操作 HTML 事件函...

  • 学习路线

    html /css (用来搭建网站页面元素和定义元素的样式) javaScript(js) (用来操作html元素...

  • jQuery入门

    jQuery是js的函数库。 功能: html元素选择与操作 css操作 html事件函数 JS特效和动画 Htm...

  • JS操作html元素中的offset

    我们在开发中有时会遇到获取元素的width和height等样式 在style标签中设置的样式属性获取不到style...

  • JS操作html元素中的事件

    事件在日常使用到事件,比如:按钮的点击,鼠标的点击等,那么如何给一个元素绑定事件呢,事件的绑定有几个方式呢? 绑定...

  • JS操作html元素中的client

    client 可视区域的内容 可以得出结论是: clientWidth是不包含边框的宽度,clientLeft 是...

  • js 实现纵向轮播

    效果: html: scrollVertical.css: scroll.js:

网友评论

    本文标题:JS操作html元素中的scroll

    本文链接:https://www.haomeiwen.com/subject/aelcdctx.html