JS中其他样式相关的属性及滚动条练习

  1. clientWdithclientHeight这两个属性可以获取元素的可见宽度和可见高度,包括内容区和内边距,返回的是数值,可以直接用来进行运算。通过这两个属性只能读取,不能修改。

clientWdith属性,返回可见宽度,例子如下:

语法:元素.clientWidth
box.clientWidth;

clientHeight属性,返回可见高度,例子如下:

语法:元素.clientHeight
box.clientHeight;
  1. offsetWidthoffsetHeight这两个属性可以获取元素的整个大小,包括内容区、内边距以及边框,返回的是数值,能直接进行运算。通过这两个属性只能读取,不能修改元素的属性。

offsetWidth属性,返回元素的宽度,例子如下:

语法:元素.offsetWidth
box.offsetWidth;

offsetHeight属性,返回元素的高度,例子如下:

语法:元素.offsetHeight
box.offsetHeight;
  1. offsetParent可以获取当前元素的定位父元素,他会获取到离当前元素最近的开启了定位(只要position的值不是static就开启了定位)的祖先元素,如果所有的祖先元素都没有开启定位,则返回body,例子如下:
语法:元素.offsetWidth
box.offsetWidth;
  1. offsetLeftoffsetTop

offsetLeft属性,当前元素相对于定位父元素的水平偏移量,这里的定位父元素就是通过offsetParent所能获取到的元素,如果所有的祖先元素都没有开启定位,则它的定位父元素为body,例子如下:

语法:元素.offsetLeft
box.offsetLeft;

offsetTop属性,当前元素相对于定位元素的垂直偏移量,定位元素同上,例子如下:

语法:元素.offsetTop
box.offsetTop;
  1. scrollHeightscrollWidth可以获取到元素整个滚动区域的高度和宽度

scrollHeight属性,可以获取到元素整个垂直滚动区的高度,也就是滚动条可以垂直滚动的最大距离。例子如下

元素.scrollHeight
box.scrollHeight

scrllWidth属性,可以获取到这个元素整个水平滚动去的宽度,也就是滚动条可以水平滚动的最大距离,例子如下:

元素.scrollWidth
box.scrllWidth;
  1. scrollLeftscrollTop可以获取水平滚动条或者垂直滚动条滚动的距离

scroollLeft属性,可以获取到滚动条水平滚动的距离,例子如下:

元素.scrollLeft
box,scrollLeft;

scrollTop,可以获取到滚动条垂直滚动的距离,用法如下:

元素.scrollTop
box.scrollTop;
  1. 判断垂直滚动条或者水平滚动条到底了:
    • 当满足scrollHeight减去scrollTop等于clientHeight的时候,说明垂直滚动条滚动到底了
    • 当满足scrollWidth减去scrollLeft等于clientWidth的时候,说明水平滚动条滚动到底了

这些属性只能读取,不能进行修改,想要修改只能通过style这些属性都是不带px的,返回的都是数值,可以直接进行计算

相应的滚动条练习代码如下,注意看注释:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>滚动条的练习</title>
    <style type="text/css">
        #menu{
            width: 337px;
            height: 500px;
            background-color: #faa;
            overflow: auto;//使元素有滚动条
        }
        
    </style>

    <script type="text/javascript">
        window.onload = function(){
            /* 
                当垂直滚动条滚动到底时,让表单项可用
                onscroll
                这个事件会在滚动条滚动的时候被出发
            */
            var menu = document.getElementById("menu");
            //通过元素名,获取表单项,返回的是数组
            var inputs = document.getElementsByTagName("input");
            menu.onscroll = function(){
                //检查滚动条是否滚动到底
                /*  这里要注意,直接减掉menu.scrollTop的话会存在小数,
                    哪怕是有万分之一的数值还在都不算到底,所以响应函数不会被触发
                    所以要用Math.round来对其进行取整 
                */
                if(menu.scrollHeight - Math.round(menu.scrollTop) === menu.clientHeight){
                    // alert("我已经到底了");
                    //设置表单项可用
                    /* 
                        disabled属性可以设置一个元素是否禁用,如果设置为true,则元素禁用,
                        如果设置为false,则设置为元素可用
                    */
                    inputs[0].disabled = false;
                    inputs[1].disabled = false;
                }
            };
        };
    
    </script>
</head>
<body>
    <div id="menu">
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
        这是霸王条款,请仔细阅读,不然后果自负!
    </div>
    <input type="checkbox" disabled="disabled"/>同意协议
    <input type="submit" value="注册" disabled="disabled"/>
</body>
</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值