JS 中的 offset、scroll、client

---恢复内容开始---

offset的使用

css部分

*{
            margin:0;
            padding: 0
        }
        #offset{
            width: 100px;
            height:100px;
            padding:20px;
            background: red;
            margin-top:30px;
        }
        #fixed{
            position: absolute;
            right:100px;
            top:200px;
            width: 200px;
            height: 200px;
            background: black;
        }

html部分

<div id="fixed">
        <div id="center" style="height:140px;width: 140px">
            <div id="offset"></div>
        </div>
    </div>

javascript以及讲解

var offset = document.querySelector("#offset");//检测盒子自身宽高+padding+border 不包括margin offset:偏移、补偿、位移
    console.log(offset.offsetWidth);
    console.log(offset.offsetTop);// offsetLeft 和 offsetTop  (检测距离父盒子有定位的左/上面的距离) 和盒子本身有无定位无关。
    console.log(offset.offsetParent);//应该返回fixed
    //offsetParent 取最近的那个有定位的父级元素。 如果没有则返回body元素
    //两者的区别
    //(4) offsetLeft 和 style.left 区别
    /*① 最大区别在于offsetLeft 可以返回没有定位盒子的距离左侧的位置。 而 style.left不可以。
    ② offsetLeft 返回的是数字,而 style.left 返回的是字符串,除了数字外还带有单位:px。
    ③ offsetTop 只读,而 style.top 可读写。(只读是获取值,可写是赋值)
    ④ 如果没有给 HTML 元素指定过 top 样式,则style.top 返回的是空字符串。
    (style.left在等号的左边和右边还不一样。左边的时候是属性,右边的时候是值。)*/

效果

div#fixed

div#center

div#offset

控制台效果

兼容性问题

var scroll = document.getElementById("scroll");
    setInterval(function(){
        // var aaa = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
var aaa = document.documentElement.scrollTop + document.body.scrollTop;
console.log(aaa);
        console.log(document.body.scrollTop);
    }, 3000);

① 未声明 DTD 时(谷歌只认识他)
document.body.scrollTop
② 已经声明DTD 时(IE678只认识他)
document.documentElement.scrollTop
③ 火狐/谷歌/ie9+以上支持的
window.pageYOffset

client使用

    //client 系列
    //获取网页
    var scroll = document.getElementById("scroll");
    console.log(scroll.clientWidth);//  clientWidth = width+左右padding 不包括边框和外边距
    //clientTop = boder.top(上边框的宽度)
    console.log(scroll.clientTop);//上边距的宽度

(2)clientX 和 clientY

clientX:鼠标距离可视区域左侧距离(event调用)

clientY:鼠标距离可视区域上侧距离(event调用)

event事件对象

普通浏览器支持 event(带参,任意参数)

ie 678 支持 window.event(无参,内置)

IE678中,window.event

在火狐谷歌中,event或者,在事件绑定的函数中,加参,这个参数就是event.

Box.onclick = function (aaa){   aaa就是event     }

重要内容

pageY/pageX: 鼠标位于整个网页页面的顶部和左侧部分的距离。(页面)

pcreenY/screenX: 鼠标位于屏幕的上方和左侧的距离。(屏幕)

clientX/clientY: 鼠标位于浏览器的左侧和顶部的距离。(浏览器大小和位置)

    document.body.onclick = function(event){
        var s = event;
        console.log("页面"+s.pageY);//获得距离页面上的距离
        console.log("屏幕"+s.screenY);//获得距离浏览器上面的距离
        console.log("屏幕"+s.clientY);
    }

读者可以将上面的代码赋值下来运行看一下 建议先将刘拉起窗口达到最大查看效果 再次将浏览器的窗口缩小 此时第二个的结果就发生变化 了 页面和相对于浏览器的不会发生变化

原文地址:https://www.cnblogs.com/webcyh/p/11620000.html

时间: 2024-07-30 20:51:10

JS 中的 offset、scroll、client的相关文章

js进阶之js三大家族:offset,scroll,client

offset与style的区别offset可以得到任意样式表中的样式值offset系列的数值没有单位offsetWidth包含padding+border+widthoffsetwidth等属性是只读属性,只能获取,不能赋值 所以,我们想要获取元素大小的位置,用offset更合适stylestyle只能获取到行内样式表stylewidth获得的是带有单位的字符串style.width不包括padding和border的值style.width是可读属性,可以获取也可以赋值 点语法与offset获

offset,scroll,client三大系列

offset 偏移 offsetWidth是指div的宽度(包括div的边框) offsetWidth = width + padding + border: offsetHeight是指div的高度(包括div的边框) offsetHeight = Height + padding + border: offsetLeft是指div到整个页面左边框的距离(不包括div的边框) offsetTop是指div到整个页面上边框的距离(不包括div的边框) scroll?????????滚动 scro

js-width/height/top/left/offset/scroll/client

让你彻底弄清offset:http://www.cnblogs.com/jscode/archive/2012/09/03/2669299.htmlJavascript/Jquery获取浏览器和屏幕各种高度宽度:http://www.cnblogs.com/EricaMIN1987_IT/p/3593431.html

js中的dom节点以及offset,client,scroll家族

一.节点. 1.父节点:parentNode; 2.兄弟节点: (1).下一个兄弟节点:nextElementSibling(在Ie中用nextSibling); (2).上一个兄弟节点:previousElementSibling(在Ie中用 previousSibling); 3.子节点: (1).选中第一个子节点:firstElementChild(在Ie中用firstChild); (2).选中最后一个子节点:lastElementChild(在ie中用lastChild); (3).选

20190430-screen、client、offset、scroll等JS中各种宽度距离

参考文献: JavaScript概念之screen/client/offset/scroll/inner/avail的width/left 原文地址:https://www.cnblogs.com/nightnight/p/10795215.html

JavaScript中的 offset, client,scroll

在js 中我们要用到的 offset, client, scroll 在这我把自己理解的给大家分享一下. offset div.offsetTop 指div距离上方或上层控件的距离,单位像素 div.offsetLeft 指div距离左侧或上层控件的距离,单位像素 div.offsetWidth 指div 控件本身的宽度,单位像素 div.offsetHeight 指div 控件本身的高度,单位像素 混淆点 clientWidth 指对象看到的宽度,不包含border scrollWidth 是

js的offset,client,scroll的区别

javascript的offset.client.scroll在使用过程中非常频繁,接下来将对此进行一一介绍,了解其区别和使用方法. offsetTop 指元素距离上方或上层控件的位置,整型,单位像素.  offsetLeft 指元素距离左方或上层控件的位置,整型,单位像素.  offsetWidth 指元素控件自身的宽度,整型,单位像素.  offsetHeight 指元素控件自身的高度,整型,单位像素.  网页可见区域宽:document.body.clientWidth  网页可见区域高:

offset、client、scroll开头的属性归纳总结

HTML元素有几个offset.client.scroll开头的属性,总是让人摸不着头脑.在书中看到记下来,分享给需要的小伙伴.主要是以下几个属性: 第一组:offsetWidth,offsetHeight,offsetLeft,offsetTop,offsetParent  第二组:clientWidth,clientHeight,clientLeft,clientTop 第三组:scrollWidth,scrollHeight,scrollLeft,scrollTop 详细定义如下: 1.1

client,offset.scroll系列/案例

一.client, offset, scroll系列 1.client系列 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>client</title> <style type="text/css"> .box{ width: 100px; height: 100px; position: absolute; b