温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

JS/jQ常用宽高及应用

发布时间:2020-06-11 16:25:02 来源:网络 阅读:411 作者:wantingyun 栏目:网络安全

关于js的宽高,随便一搜就是一大堆。这个一大堆对我来说可不是什么好事,看的头都大了。所以今天就总结了一些比较会常用的,并说明一下应用场景。

先来扯一下documentElement和body的微妙关系:

documentElement===html  ----->>    documentElement.childNode[2]===body  【很明显,父子关系呗】

如果<! doctype html>中没声明html,则拿不到documentElement这个值,但此时body==documentElement,这才有了下面的兼容写法.

 

ps:以下内容就只谈论height,width同理嘛。

js的宽高及应用:

可视区尺寸(.clientHeight):

            对document:可视区height = 整个浏览器的高 - 工具栏部分height.

                 兼容写法:document.documentElement.clientHeight||document.documentElement.clientHeight.

            对div:可视区height = height + padding.

             写法:divObj.clientHeight.

滚动距离(.scrollTop):

           对document:可视区顶部到网页顶部,即网页被卷上去的部分.

                获取兼容写法:document.body.scrollTop || document.documentElement.scrollTop.

                设置兼容写法:document.body.scrollTop = document.documentElement.scrollTop=...

           对div:div被卷上去的部分.

                获取写法:divObj.scrollTop.

                设置写法:divObj.scrollTop=...

.scrollHeight:

           对document: document.body.scrollHeight被视为整个网页的高。【网页内容大于clientHeight时】

                获取写法:document.body.scrollHeight.

          对div:没有滚动条时,scrollHeight与clientHeight属性结果相等,scrollWidth与clientWidth属性结果相等;

                   存在滚动条,即存在内容溢出的情况时,scroll属性大于client属性,divObj.scrollHeight包括被隐藏部分。scrollHeight可用于获取div的wholeHeight以实现滚动到底部加载。

         【注意】scrollHeight属性存在兼容性问题,chrome和safari浏览器中,scrollHeight包含padding-bottom;而IE和firefox不包含padding-bottom.

.offsetHeight:

         对document:

                  IE、Opera 认为 offsetHeight = clientHeight + 滚动条 + 边框。 NS、FF 认为 offsetHeight 是网页内容实际高度,可以小于 clientHeight。 

         对div:

              divObj.offsetHeight=height+padding+border.

 

安利一个好东西:

.getBoundingClientRect().top/right/bottom/left;  //div的各边距可视区的距离.

 

JS/jQ常用宽高及应用

可视区加载:

JS/jQ常用宽高及应用

1 function showDiv(){2    var showId=document.getElementById("showDiv");3    var clients=window.innerHeight||document.documentElement.clientHeigh||document.body.clientHeigh;4    var divTop=showId.getBoundingClientRect().top;
     //判断是否出现在可视区了5    if(divTop<=clients){6       showId.classList.add('fadeInLeft');//一个带有动画的类7    }8 }

JS/jQ常用宽高及应用

 

 

jQ的宽高及应用:

width() | height():可读写。(length) | function(index,oldWidth){  }

innerWidth() | innerHeight():可读写。(length) | function(index,oldWidth){  }

outerWidth(Boolean) | outerHeight(Boolean):为true时包括margin,false时不包括margin.

 

.scrollTop() | .scrollLeft:被卷走的宽高。

.offset().top/left :相对于document.

.position().top/left :相对于offsetParent.

 

常用的属性:

$(window).height();--可视区高

$(window).scrollTop();--滚上去的部分

$(document).height();--整个文档的高

 

滚动到底部:

JS/jQ常用宽高及应用

$(window).scroll(function(){ var scrollTop = $(this).scrollTop();    //滚动条距离顶部的高度
 var scrollHeight = $(document).height();   //当前页面的总高度
 var clientHeight = $(this).height();    //当前可视的页面高度
 
 if(scrollTop + clientHeight >= scrollHeight){   //滑动到底部 count++;         //每次滑动count加1
    alert("滚动底部了");
 }});

JS/jQ常用宽高及应用


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

js j
AI