美文网首页
获取窗口属性,获取dom尺寸 ,脚本化css

获取窗口属性,获取dom尺寸 ,脚本化css

作者: 浮巷旧人 | 来源:发表于2018-08-12 22:53 被阅读0次

查看滚动条的距离
window.pageXOffset/pageYOffset
ie8及ie8以下不兼容
document.body/document.Element.scrollLeft/scrollTop
兼容性比较混乱,用时取两个值相加,因为不可能存在两个同时有值
封装兼容性方法,求滚动轮滚动离getScrollOffset()

function getScrollOffset(){
 if(window.pageXOffset){
   return{
     x: window.pageXOffset,
     y: window.pageYOffset
 }else{
     return{
  x:document.body.scrollLeft +
   document.document.Element.scrollLeft
  y:document.body.scrollTop +
   document.document.Element.scrollTop
       }
   }
}

查看视口的尺寸
window.innerWidth/inner.Height
IE及IE8以下不兼容
document.documentElement.clientWidth/clientHeight
标准模式下,任意浏览器都兼容
document.body.clientWidth/clientHeight
适用于怪异模式下的浏览器
封装兼容性方法,返回浏览器市口尺寸getViewportOffset()

function getViewportOffset(){
if(window.innerWidth){
return{
     w : window.innerWidth,
     h  : window.innerHeight
}else{
if(document.compatMode === "BackCompat"){
return{
  w:document.body.clientWidth,
     h:document.body.clientHeight
   }else{
  return{
w: document.document.Element.clientWidth,
h: document.document.Element.clientHeight
}
}
}
 }

查看元素的几何尺寸
domEle.getBoundingClientRect();
兼容性很好
该方法返回一个对象,对象里面有left,top,right,bottom等属性。left和top代表该元素左上角的X和Y坐标,right和bottom代表元素右下角的坐标
返回的结果并不是实时的

查看元素的尺寸
dom.offsetWidth, dom.offsetHeight
查看元素的位置
dom.offsetLeft, dom.offerTop
对于无定位父级的元素,返回相对文档的坐标。对于有父级定位的元素,返回相对于最近的有定位的父级的坐标。
dom.offerParent
返回最近的有定位的父级,如无,返回body,body.offsetParent返回null

让滚动条滚动
window上有三个方法
scroll(), scrollTo() scrollBy();
三个方法功能类似,用法都是将x,y坐标传入。即实现让滚动轮到当前位置。
区别:scrollBy()会在之前的数据基础之上做累加。

<body>
<div style="~~">start</div>
<div style="~~">stop</div>
<script  type ="text/javascript">
var start = document.getElementByTagName('div')[0];
var stop = document.getElementByTagName('div')[1];
var timer = 0;
var key =true;
start.onclick = function(){
  if(key){
    timer = setInterval(function (){
    window.scrollBy(0,10);
    },100);
      key = false;
    }
  }
stop.onclick = function(){
  clearInterval(timer);
  key = true;
}

脚本化css

  • 读写元素css属性
    dom.style.prop
    可读写行间样式,没有兼容性问题,碰到float这样的保留字属性,前面应加css
    eg:float-->cssFloat
    复合属性必须拆解,组合单词变成小驼峰写法backgroundColor div.style.width
    写入的值必须是字符串格式
  • 查询计算样式
    window.getComputedStyle(ele,null);
    计算样式只读
    返回的计算样式的值都是绝对值,没有相对单位
    IE及IE8以下不兼容
    window.getComputedStyle(div,null).width
    里面的null 可以换成“after” 用来查看伪元素的
  • 查询样式
    ele.currentStyle
    计算样式只读
    返回的计算样式的值不是经过转换的绝对值
    IE独有的属性
    封装兼容性方法getStyle(elem,prop)
    div.currentStyle.width
fucntion getStyle(elem,  prop){
    if(window.getComputedStyle){
         return window.getComputedStyle(elem,null)[prop];
  }else{
        return elem.currentStyle[prop];
  }
}
  • 令小木块移动
<div style="width:100px;height:100px;background-
color:red;position:absolute;left:0;top:0px;"></div>
<script type="text/javascript">
 fucntion getStyle(elem,  prop){
    if(window.getComputedStyle){
         return window.getComputedStyle(elem,null)[prop];
  }else{
        return elem.currentStyle[prop];
  }
}
var div = document.getElementByTagName('div')
[0];
var  timer = setInterval(function (){
    div.style.left = parseInt(getStyle(div,  'left')) + 1
 + 'px';
if(parseInt(div.style.left) > 500){
    clearInterval(timer);
},10);//parseInt是为了取数字,因为返回的是带单位的‘px’
</script>

相关文章

  • 12 js07 window系列方法,脚本化CSS

    滚动条移动距离、获取可视窗口属性、获取dom元素尺寸、滚动条系列方法、脚本化CSS 【封装函数,形成工具库tool...

  • 获取窗口属性,获取dom尺寸 ,脚本化css

    查看滚动条的距离window.pageXOffset/pageYOffsetie8及ie8以下不兼容documen...

  • JQuery

    设置样式 获取属性 改变html 操作css 各种尺寸 获取节点 获取兄弟节点 过滤 JQuery和AJAX

  • 原生JS中DOM元素的操作

    获取dom 修改属性 .获取对象的属性 .js获取非行内样式属性 innerHTML dom 属性设置与获取 Do...

  • js获取Dom对象

    通过id获取Dom 通过class获取dom 通过标签获取dom 通过name属性获取dom 通过选择器query...

  • 脚本化初识

    一、脚本化:用JS去控制css样式1、获取css样式(1)获取行内样式var style=div.stylesty...

  • js窗口尺寸获取常用属性

    window.innerHeight(innerWidth):表示可见区域的高度(宽度),如果底部(右侧)有滚动条...

  • js 操作DOM

    获取dom的三种方式 dom常用属性 ( element .属性) 元素类型 名称描述nodeName获取标签类型...

  • js获取当前文档视口高度

    function autodivheight() { //函数:获取尺寸 //获取浏览器窗口高度 var ...

  • jQuery中的DOM操作

    获取设置节点的属性 each() 常用的属性 css属性的设置与获取 常用的CSS相关的属性 常用的CSS相关的属性

网友评论

      本文标题:获取窗口属性,获取dom尺寸 ,脚本化css

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