鲜荣彬
Herry

思考一

  window与document的联系与差别

    请思考下面返回的值:

    window.document === document

    document.documentElement  ===  document.querySelector('html')

    document.body  === document.querySelector('body')

    上述返回的值都是  true.

    documen如下

      

  

思考二

  窗体滚动事件绑定在哪里?

  window  ?

  document ?

  document.documentElement ?

  document.body ?

  经过测试,

  document.documentElement 与 document.body 并不会触发此监听函数。

  而document的监听,虽然会被触发,但是,却不能获取响应的值。

  因此,对window的监听趋于完美,因此,应该在window上绑定监听

      document.addEventListener('scroll',  (event) =>{
            console.log('document scroll-----' + this.scrollTop);
        });

        window.addEventListener('scroll',function(event){
            console.log('window scroll-----'+ this.pageYOffset)
        });

        document.documentElement.addEventListener('scroll',()=>{
            console.log('document.documentElement scroll-----'+this.scrollTop)
        });

        document.body.addEventListener('scroll',()=>{
            console.log('document body scroll-----'+this.scrollTop))
        });

 

思考三

  窗体的滚动高度的获取

      window.pageYOffset

    document.documentElement.scrollTop

      这两个属性,都可以获取滚动高度。

    建议使用 window.pageYOffset

思考四

  Element元素的各个属性值的含义。

  clientHeight 与 scrollHeight

    scrollHeight 表示元素内容的高度,包括由于益处而导致视图不可见的部分,也将padding计算在内。

    clientHeight 返回元元素的高度,由 padding+content 组成。

    offsetHeight 返回元素的高度,由 border+padding+content 组成。

    如下Demo

     <div id="testDiv" style="height:100px; width: 100px; overflow: scroll; padding:10px; border:5px solid red;">
            document.body的scrollWidth和scrollHeight 与 div中scrollWidth和scrollHeight是有点区别的。
            document clientWidth与clientHeight
            1> 该属性指的是元素的可视部分宽度和高度,即padding + content。
        </div>

    此时, testDivElement 的  clientHeight = 120  (100 + 2*10 )

                 offsetHeight = 130 ( 100 + 2*10 +2*5 )

                 scrollHeight = 416 (无法通过计算获取)

思考五

   如何更高Body距离顶部的高度?

   前面的属性都是只读属性,并不能更高,怎么更改?

   使用 document.scrollingElement.scrollTop 属性,可读可写,兼容性良好。

  

  

posted on 2015-12-22 15:30  Herry彬  阅读(159)  评论(0编辑  收藏  举报