js浏览器各种位置检测

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>属性检测</title>
  <style>
  *{margin: 0;padding:0;border:none;}
 #tip{
  width:400px;
  height:300px;
 }
 #T{
  width:400px;
  height:200px;
  margin-left:10px;
  margin-top: 10px;
  border-width: 100px;
  border-style: solid;
  border-top-color: blue;
  border-right-color: red;
  border-bottom-color: orange;
  border-left-color:black;
  background: green;
  padding-left: 100px;
  padding-top: 100px;
  text-align:left;
  padding-left-color: white;
  color:orange;
  overflow: scroll;
 }
 body{

 }
  </style>
 </head>
 <body>
 <textarea id=‘tip‘></textarea>
 <div id=‘T‘>
 12312123112312123123121231123121231231212311231212312312123112312123
 </div>
<script type="text/javascript">
var T=document.getElementById(‘T‘);
  T.onmousemove=function(e){
    var T=document.getElementById(‘T‘);
    var clientWidth=T.clientWidth;
    var clientHeight=T.clientHeight;
    var offsetWidth=T.offsetWidth;
    var offsetHeight=T.offsetHeight;
    var scrollWidth=T.scrollWidth;
    var scrollHeight=T.scrollHeight;
    var scrollTop=T.scrollTop;
    var scrollLeft=T.scrollLeft;
    var screenTop=window.screenTop?window.screenTop:window.screenY;//火狐screenX
    var screenWidth=window.screen.width;
    var availWidth=window.screen.availWidth;
    var offsetLeft=T.offsetLeft;
    var offsetTop=T.offsetTop;
    var clientTop=T.clientTop;
    var offsetParent=T.offsetParent;
    var pageX=e.pageX;
    var pageY=e.pageY;
    var clientX=e.clientX;
    var clientY=e.clientY;
    var screenX=e.screenX;
    var offsetX=e.offsetX;
    var offsetY=e.offsetY;

    var tip="clientWidth:"+clientWidth+" clientHeight:"+clientHeight+"\r\n";
    tip+="offsetWidth:"+offsetWidth+"   offsetHeight:"+offsetHeight+"\r\n";
    tip+="scrollWidth:"+scrollWidth+"   scrollHeight:"+scrollHeight+"\r\n";
    tip+="scrollTop:"+scrollTop+"    scrollLeft:"+scrollLeft+"\r\n";
    tip+="screenTop:"+screenTop+"\r\n";
    tip+="screen.width:"+screenWidth+"\r\n";
    tip+="screen.availWidth:"+availWidth+"\r\n";
    tip+="offsetLeft:"+offsetLeft+"   offsetTop:"+offsetTop+"\r\n";
    tip+="clientTop:"+clientTop+"\r\n";
    tip+="offsetParent:"+offsetParent+"\r\n";
    tip+="pageX:"+pageX+"   pageY:"+pageY+"\r\n";
    tip+="clientX:"+clientX+"   clientY:"+clientY+"\r\n";
    tip+="offsetX:"+offsetX+"    offsetY:"+offsetY+"\r\n";
    document.getElementById(‘tip‘).value=tip;
  }

</script>

 </body>
</html>

Js位置定位控制

某个盒子:出现滚动条时 可见宽度=(width-滚动条宽度)

某个元素下的属性

clientWidth:可见区域的宽度=(width-滚动条宽度(有时)+padding)

clientTop: 获取对象的border宽度

offsetWith:(border+width+padding)

offsetLeft: 当前对象到其上级层左边的距离

offsetParent:获取当前对象的上级层对象

scrollWidth:网页正文全文宽=(没滚动条时=clientWidth,没滚条时=client+拉动滚条才能看到的区域)

scrollLeft:有滚条时左边被隐藏的长度

scrollWidth=(scrollLeft(拉到最右时)+clientWidth)

下面事件属性

window.screenTop(只读属性)浏览器窗口上边距屏幕顶端距离(适用与chrome firefox下screenX,IE下是网页正文距屏幕上边界距离(scrollTop))

window.screen.width(屏幕分辨率)

window.screen.availWidth(屏幕可用工作区宽度等于分辨率宽)

window.pageX:鼠标的横坐标以当前文档开始为基准(以border左边界就开始)

window.clientX:鼠标的横坐标以当前浏览器窗口为基准

没滚动条时pageX=clientX;

IE没pageX

在ie下pageX=clientX+scrollTop-clientTop(border-width)

window.offsetX(鼠标相比较于触发事件的元素的位置,以元素盒子模型的内容区域的左上角为参考点)

与clientX区别(clientX以浏览器窗口为基准)

js浏览器各种位置检测,布布扣,bubuko.com

时间: 2024-10-26 22:48:49

js浏览器各种位置检测的相关文章

js浏览器区别及检测

1,ie,Safari,Opera,Chrome提供了screenLeft和screenTop属性,来取得窗口相对于屏幕左边和上边的位置Firefox,Safari,Chrome提供了screenX和screenY属性表示相同的窗口位置,Opra虽然也支持这两个属性,但是并不对应screenLeft和screenTop.var leftPos=(typeof window.screenLeft=="number")?window.screenLeft:window.screenX;va

JS之浏览器安装插件检测

有些时候我们需要检测浏览器是否安装了某些插件,这样才能知道浏览器是否有相关能力.最常见的就是flash插件,如果用户浏览器并未安装,那么flash视频将无法正常播放. 以下是干货: 1 // Athor:Manley 2 3 // Data:2015/12/30 4 5 // fcuntion:浏览器安装插件检测 6 7 8 9 //注:传参调用,ie与非IE内核分别调用检测 10 11 12 13 function checeHasPlugin(name){ //检测浏览器是否含有某个插件,插

JS代码的位置与事件响应代码块的封装问题

JS代码的位置 我们可以将JavaScript代码放在html文件中任何位置,但是我们一般放在网页的head或者body部分.   放在<head>部分最常用的方式是在页面中head部分放置<script>元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分.   放在<body>部分JavaScript代码在网页读取到该语句的时候就会执行. ? 注意 Javascript作为一种脚本语言可以放在html页面中任何位置,但是浏览器解释html时是按先后

javascript 获取元素相对于浏览器的位置 ie 5,6,7,8,9,10 测试通过

//获取元素相对于浏览器的位置 getPosition: function (el) { _x = 0, _y = 0; while (true) { //todo 由于 获取td tr的offsetTop 值都是一样 所以要过滤处理 if (el.tagName == "TR") { el = el.parentNode; continue; } _x += el.offsetLeft; _y += el.offsetTop; if (el.tagName == 'BODY') br

谈谈jQuery和js里有关位置和宽高的方法

总结一下jQuery.原生js设置和获取位置.宽高的方法. 一.jQuery关于元素位置的方法 position() 方法:只能获取,不能设置. 可获取元素相对于其第一个position值不为static的祖先元素的偏移量,如果没有,则是相对于文档的偏移量:返回一个对象,包括两个属性:left,top; 属性值无单位,number类型.具体用法: $(element).position().left; //获取元素相对于其第一个position值不为static的祖先元素的偏移量 offset(

JS中的类型检测

JS中用于类型检测的函数有typeof.instanceof .Object.prototype.toString.constrcutor.duck type typeof用于检测基本类型和函数 有些特殊情况 null.数组.Date数据类型用typeof判断返回的是object instanceof用来判断对象类型,基于原型链,可以用来判断数组和Date数据类型

QR 码的位置检测符

QR码的位置检测符由三个同心正方形叠加而成.分别为: 7*7 modules的黑色正方形: 5*5 modules的白色正方形 : 3*3modules的黑色正方形. 三个用于定位检测的“回”形符号应该优先被编码,好让QR 符号中尽量不出现与其相似的符号. 这三个“回”形符号可以帮助快速的在视野中定位QR码以及确定其方向

分享一个控制JS 浏览器缓存的解决办法。

 JS 缓存的问题一直都是我们又爱又恨的东西.也是我们比较头痛的问题, 一方面为了提高网站响应速度,减少服务器的负担,和节省带宽,将需要将静态资源缓存在客户端, 但是另一方面,当js 文件有改动的时候,如何快速的将客户端缓存的js文件都失效,这是非常头痛的问题. 以至于每次客户反馈问题的时候,我们第一个解决办法都是清理浏览器缓存. 那么如何解决呢. 1. 直接禁止全部的静态文件缓存 在html 头部加上如下代码: <META HTTP-EQUIV="pragma" CONTENT

js 浏览器 BOM

js 浏览器 window 浏览器对象模型BOM使js有能力与浏览器对话.所有浏览器都支持window对象,它表示浏览器窗口.所有js全局变量,函数以及变量均自动成为window对象的成员. // 确定浏览器窗口的尺寸 <!DOCTYPE html> <html> <body> <p id="demo"></p> <script> var w=window.innerWidth || document.docume