js 和 jquery的宽高
window 和 document :
window 对象表示浏览器打开的窗口,可以省略
document对象(浏览器的html文档)是window对象的一部分
document.body等于window.document.body
document.location === window.loacation
document.location.href === location.href(location是一个对象)
window相关的 width和height:
window.innerHeight是真的可视区域高度(除去了各种任务栏工具栏宽高,随窗口缩放或f12改变)
screen 的 width、height、availWidth、availHeight 是固定不变的
window.innerHeight 和 window.innerWidth 不兼容ie8及以下版本
兼容问题推荐使用 获取浏览器窗口可视区域大小
var w= document.body.clientWidth || document.documentElement.clientWidth;
var h= document.body.clientHeight || document.documentElement.clientHeight;
document(element)相关的 width和height:
1、document.body.clientHeight是元素真实高度 (无论有无任务栏工具栏遮掩及窗口缩放)tip:滚动条宽度约17px
clientHeight = content + 2.padding;
clientLeft和clientTop返回元素周围边框的厚度,如果不指定边框或者不定位元素,其值为0
即:
clientLeft = border-left-width;
clientTop = border-top-width;
2、document.body.offsetWidth是元素加入滚动条的整体宽度
offsetWidth = content + 2.padding + 2.(border-width)+滚动条;
所以滚动条宽度= offsetWidth - clientWidth
3、document.body.scrollHeight是元素实际的子元素内容高度
无滚动轴时:scrollHeight == clientHeight = style.height+2.padding;
有滚动轴时:scrollHeight == 实际子元素的高度+2.padding;
element.offsetLeft和element.style.left相对于父对象的左边距
document.getElementById("v1").offsetLeft 只读、数值、包括margin
document.querySelector("#v1").style.left 可读可写、字符串px
event对象坐标:
clientX和clientY ----> 相对于浏览器(可视区左上角0,0)的坐标
screenX和screenY ----> 相对于设备屏幕左上角的(0,0)的坐标
offsetX和offsetY ----> 相对于事件源左上角(0,0)的坐标
pageX和pageY ----> 相对于整个网页左上角(0,0)的坐标
js宽高实际应用
1、可视区域加载图片或元素
function showDiv(){
var myPic=document.getElementById("showDiv");
var clientH=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;
var picTop=myPic.offsetTop;
if(picTop<=clientsH+scrollTop){
myPic.classList.add("fadeInLeft");
//图片延迟加载:把图片路径先放在一个属性中,再给src
}
}
window.onscroll=showDiv;
classList H5新API
classList 属性返回元素的类名,作为 DOMTokenList 对象。
该属性用于在元素中添加,移除及切换 CSS 类。
classList 属性是只读的,但你可以使用 add() 和 remove() 方法修改它。
http://www.runoob.com/jsref/prop-element-classlist.html
2、网页滚动底部或顶部
function scrollTopBottom(){
var myPic=document.getElementById("showDiv");
var clientH=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight;
var scrollTop=document.body.scrollTop;
var wholeHeight=document.body.scrollHeight;
if(scrollTop+clientH>=wholeHeight){
alert("滚到底部了");
}
if(scrollTop==0){
alert("滚动到顶部了")
}
}
window.onscroll=scrollTopBottom;
jquery的宽和高
$(ele).innerHeight() == ele.clientHeight
$(ele).outerHeight() == ele.offsetHeight
- .height() //元素本身高度
- .innerHeight() //在height的基础上加了padding值
- .outerHeight() //在innerHeight的基础上加了border
- .outerHeight(true) //在innerHeight的基础上加了border和margin
$(ele).position().left == ele.offsetLeft
整个元素算上margin、padding后的样子
- .offset() //获取匹配元素在当前视口的相对偏移
- .position() //获取匹配元素相对父元素的偏移
jquery宽高实际应用
1、可视区域加载图片或元素
$(window).scroll(function(){
var clientH=$(window).height();
var scrolltop=$(window).scrollTop();
var picTop=$("#showDiv").offset().top;
if(clinetH+scrollTop>=picTop){
$("#showDiv").addClass("fadeInLeft");
}
})
js 和 jquery的宽高的更多相关文章
- js获取隐藏元素宽高的方法
网上有一些js获取隐藏元素宽高的方法,但是可能会存在某些情况获取不了. 例如: <!DOCTYPE html> <html lang="en"> <h ...
- JS获取图片实际宽高及根据图片大小进行自适应
JS获取图片实际宽高,以及根据图片大小进行自适应 <img src="http://xxx.jpg" id="imgs" onload="ad ...
- JS获取图片实际宽高
JS获取图片实际宽高,以及根据图片大小进行自适应 <img src="http://xxx.jpg" id="imgs" onload="ada ...
- 前端 JS 获取 Image 图像 宽高 尺寸
前端 JS 获取 Image 图像 宽高 尺寸 简介 项目中用到获取图片的原始尺寸,然后适配宽高:网上的大部分前端解决方案,都是new Image()后,在onload事件中获取image的尺寸. 在 ...
- js自定义获取浏览器宽高
/** * @description js自定义获取浏览器宽高 * * IE8 和 IE8 以下的浏览器不兼容 * window.innerWidth * window.innerHeight * * ...
- 原生js获取宽高与jquery获取宽高的方法的关系
说明:1.因为获取高度的情况跟获取宽度的情况一样,所以以下只说获取宽度的情况. 2.以下所说的所有方法与属性所返回的值都是不带单位的. 3.为了方便说明,以下情况采用缩写表示: obj -> ...
- JS获取元素的宽高以及offsetTop,offsetLeft等的属性值
基本介绍 $(obj).width()与$(obj).height() $(obj).width()与$(obj).height() :jquery方式获取元素的宽高,不包括滚动条与工具条 $(obj ...
- 写个js动态调整图片宽高 (原创)
<body style="TEXT-ALIGN: center;"> <div id="testID" style="backgro ...
- JS基础篇--JS获取元素的宽高以及offsetTop,offsetLeft等的属性值
$(obj).width()与$(obj).height() $(obj).width()与$(obj).height() :jquery方式获取元素的宽高,不包括滚动条与工具条 $(obj).wid ...
随机推荐
- C# 运用DirectoryInfo类和FileInfo类
DirectoryInfo类和FileInfo类的基类都是FileSystemInfo类,这个类是一个抽象类,也就是说你不可以实例化该类,只能通过继承产生其子类并实例化其子类.然而你却可以运用由该类定 ...
- macbook pro开机键盘键盘和触摸板没反应问题
今天遇到开机键盘和触摸板没反应的问题,打电话给售后,他叫我插一个usb外置键盘,开机时按shift+alt+control+电源键开机,突然发现可以了,这bug我也是醉了
- npm 常用指令 使用指令删除 node_modules 包
查看 npm 命令 npm help 全局命令参数 -g npm install -g 安装全局 npm uninstall -g 卸载全局 全局node包中 i5ting_toc 这个包可以把md文 ...
- abs的个人博客 http://abs001.top/blog
abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 abs的个人博客 a ...
- Ubuntu18 中文乱码 问题 解决
之前租的服务器没有中文乱码的问题,最近重装了一下系统, 出现了中文乱码, 以下是解决方案: 输入locale查看当前的语言是否是中文 root@ubuntu:~# locale LANG=zh_CN. ...
- 【jenkins】jenkins服务器与svn服务器时间不一致出现的问题
问题描述: svn提交了一次更新包,到了jenkins提交更新的时候,第一次代码没有生效,然后重新提交了一次,第二次才生效. 问题排查: 1.首先第一反应比对了下两次更新的包文件是否一致,然后发现大小 ...
- 【PHP】$_SERVER整理
PHP变成中经常需要用到服务器的一些资料,我在这里整理一下,方便查找.第一部分为比较常用的$_SERVER $_SERVER['HTTP_ACCEPT_LANGUAGE']//浏览器语言 $_SERV ...
- 第 8 章: 模块, 包与分发---Word
第八章: 模块, 包 与 分发 描述: 大型Python程序以模块和包的形式组织.另外,Python标准库中包含大量模块.本章详细介绍模块和包系统.还将提供有关如何安装第三方模块和分发源代码的信息. ...
- Understanding on 'Error to Origin (50x)' , 'Internal CDN Error (50x)' and 'External Error (50x)' in Chartron
Overview This document explains about definition of these values on OUI Chartron. Definition of Erro ...
- 【Word Break II】cpp
题目: Given a string s and a dictionary of words dict, add spaces in s to construct a sentence where e ...