17-dom对象常用属性

dom对象常用属性

classList与dataset

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
        <style type="text/css">
            .container{
                width: 300px;
                height: 300px;
                border: 1px solid #FF0;
            }
            .red{
                color: red;
            }
            .import{
                font-weight: bold;
            }
        </style>
    <body>
        <a href="links_1" data-index=1>links_1</a>
        <a href="links_2" data-index=2>links_2</a>
        <a href="links_3" data-index=3>links_3</a>
        <ul id="ul_1" class="container red" data-index=1>
            <li>test_1</li>
            <!--注释节点<li>test_1</li>-->
            <li>test_2</li>
            <li>test_3</li>
            <li>test_4</li>
        </ul>
        <script type="text/javascript">
            /*元素的属性都可以通过element属性名访问与修改
            比如a,href,div,id
            class 属性需用className
            style中的样式属性需要转换成驼峰写法,比如background-color,需转换为backgroundColor
            */
            links = document.links
            links[0].href = "http://www.baidu.com"
            links[1].innerHTML = "<b>hello world</b>"
            
            ul = document.getElementById("ul_1")
            ul.className = "container"
            // 修改样式
            ul.style.backgroundColor = "#efefef"
            /*
            ul.style.position = "absolute"
            ul.style.left = "50px"
            ul.style.top = "50px"
            */
            // innerHTML节点的html文本
            // outnerHTML包含自身的html文本
            console.log(ul.innerHTML)
            console.log(ul.outerHTML)
            
            // classList
            /*
            利用className修改包含多个类样式时不太方便,h5中提供了classList属性
            该属性包含以下方法:
            add(className):添加一个新的样式名
            contains(className):查询是否包含某个样式名,包含则返回true;否则返回false
            remove(className):删除某个样式名
            toggle(className):如果有这个样式则移除;没有则添加
            */
            ul.classList.add("red")
            ul.classList.add("import")
            console.log(ul.classList.contains("red"))
            ul.classList.remove("red")
            ul.classList.toggle("red")
            ul.classList.toggle("red")
            
            
            /* h5页面可以通过"data-"开通的属性名添加自定义属性
            然后通过dataset属性访问
            比如<a href="" data-index="1"></a>
            通过a.dataset.index可以访问data-index属性
            */
            links =document.links
            console.log(links[1].dataset.index)
        </script>
    </body>
</h
tml>

元素大小

  • offsetHeight:元素在垂直方向上占用的空间大小
  • offsetWidth:元素在水平方向上占用的空间大小
  • offsetLeft:元素在左边框距离包含元素的左内边框距离
  • offsetTop:元素在顶边框距离包含元素的上边框内边距离
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <style type="text/css">
        body{
            margin: 0;
        }
        .container{
            position: absolute;
            /* left: 100px;
            top: 100px;
            */
            margin:15px 25px 30px 20px;
            padding: 100px;
            width: 100px;
            height: 100px;
            border: 10px solid #ff0;
            overflow: auto;
            /* overflow: hidden; */
        }
        .box{
            position: absolute;
            width: 500px;
            height: 500px;
            border: 2px solid #ff0000;
            background: url(../../myhtml/001.jpg);
        }
    </style>
    <body>
        <div class="container">
            <div class="box">

            </div>
        </div>
        <script type="text/javascript">
        /*
        元素大小:
        offsetHeight:元素在垂直方向上占用的空间大小
        offsetWidth:元素在水平方向上占用的空间大小
        offsetLeft:元素在左边框距离包含元素的左内边框距离
        offsetTop:元素在顶边框距离包含元素的上边框内边距离
        */
        container = document.querySelector(".container")
        box = document.querySelector(".box")
        console.log("container.offsetHeight=>",container.offsetHeight)
        console.log("container.offsetWidth=>",container.offsetWidth)
        console.log("container.offsetLeft=>",container.offsetLeft)
        console.log("container.offsetTop=>",container.offsetTop)
        console.log("container.clientHeight=>",container.clientHeight)
        console.log("container.clientWidth=>",container.clientWidth)
        console.log(box.offsetHeight)
        console.log(box.clientWidth)
        console.log(box.offsetLeft)
        console.log(box.offsetTop)
        // 通过js修改位置
        // container.style.left = "50px"
        // container.style.top = "50px"
        
        /*
        scrollHeigth:没有滚动条时的高度,即页面部分实际高度
        scrollWidth:没有滚动条时的高度,即部分内容实际高度,
        scrollLeft:被隐藏部分的像素数,修改此值可以改变横向滚动条位置,
        scrollTop:被隐藏在上方的像素数,修改此值改变垂直方向滚动条位置
        */
        console.log(container.scrollHeigth)
        console.log(container.scrollWidth)
        console.log(container.scrollLeft)
        console.log(container.scrollTop)
        // 脚本控制滚动条
        // container.scronllTop = 200
        function scroll(){
            container.scrollTop += 15
            container.scrollLeft += 15
            setTimeout(scroll,1000)
        }
        scroll()
        
        </script>
    </body>
</html>

 

posted @ 2021-08-10 18:08  西瓜的春天  阅读(51)  评论(0)    收藏  举报