前端:JS/27/HTML DOM简介和新特性,HTML DOM访问HTML元素的方法,元素对象的属性(标准属性),noscroll事件,实例:书讯快递

本文介绍了HTMLDOM的基本概念及新特性,详细讲解了通过id查找节点、获取HTML标记对象等常用方法。并通过实例演示了如何利用onscroll事件实现书讯快递的滚动效果。

HTML DOM简介和新特性

1,HTML DOM简介

核心DOM中,提供的属性和方法,已经可以操作网页了,为什么还要HTML DOM?
如果在核心DOM中,网页中节点层级很深时,访问这个节点时将十分的麻烦。因此使用HTML DOM中提供的通过id直接找节点的方法,而不用再从HTML根节点开始。

2,每一个HTML标记,都对应一个元素对象,如:<img>对应一个图片对象;<table>对应一个表格对象,等等

2

HTML DOM访问HTML元素的方法(频繁使用)

1,getElementById(id);

功能:查找网页中指定id的元素对象;
语法:var obj =document.getElementById(“id”);
参数:id是指网页中标记的id属性的值;
返回值:返回一个元素对象
例:var imgObj =document.getElementById(“img”);

2,getElementsByTagName(tagName)

功能:查找指定的HTML标记,返回一个数组。
语法:var arrObj =parentNode.getElementsByTagName(tagName);
参数:tagName是要查找的标记名称,不带尖括号;
返回值:返回一个数组,如果只有一个节点也返回一个数组;
例:找到ulTag下的所有li标记
4

元素对象的属性(标准属性)

5

1,tagName :标签名称,与核心DOM中的nodeName一样;
2,className :CSS类的样式;效果相当于HTML标记中加入class =“className”

3,id :同HTML标记id属性一样;
4,title :同HTML标记的title属性一样;
5,style :同HTML标记的style属性一样;

6,innerHTML :指包含在HTML标记中所有的内容,包括其中的HTML标记;

7,offsetWidth :元素对象的宽度,不带px单位;
8,offsetHeight :元素对象的高度,不带px单位;
9,scrollWidth :元素对象的总宽度,包括滚动条中的内容,不带px单位;
10,scrollHeight :元素对象的总高度,包括滚动条中的内容,不带px单位;
11,scrollTop :元素对象向上滚动过去了多少距离(有滚动条时才有效),不带px单位;
12,scrollLeft :元素对象向左滚动过去了多少距离(有滚动条时才有效),不带px单位;
例:
6

onscroll事件(属性) :当拖动滚动条时,调用JS函数

实例:书讯快递

1

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>JS实例:书讯快递滚动效果</title>
    <style type="text/css">
        body,
        ul,
        li {
            margin: 0px;
            padding: 0px;
        }

        ul,
        li {
            list-style: none;
        }

        body {
            font-size: 12px;
        }

        #dome {
            width: 200px;
            height: 250px;
            margin: 50px auto;
            border: 1px solid #000;
            overflow: hidden;
            /* 溢出内容隐藏*/

        }

        #dome li {
            padding: 0px 5px;
            /* li的内填充 */
        }

        #dome1 {
            background-color: #00FFFF;
        }

        #dome2 {
            background-color: #FFFF00;
        }
    </style>
    <script type="text/javascript">
        window.onload = function () {
            //1,获取三个<div>的id对象
            var dome = document.getElementById("dome");
            var dome1 = document.getElementById("dome1");
            var dome2 = document.getElementById("dome2");

            //2,三个<div>的高度一样
            dome1.style.height = dome.offsetHeight + "px";//这里的style是属性又是一个style对象,代表CSS对象;
            //style对象代表行内样式
            dome2.style.height = dome.offsetHeight + "px";
            //3,将dome1中的内容复制到dome2中
            dome2.innerHTML = dome1.innerHTML;
            //4,dome的scrollTop属性来实现滚动
            window.setInterval("start(dome)", 40);//定时器使40毫秒向上滚动1px
        }
        function start(dome) {//实现dome的滚动
            if (dome.scrollTop == dome.offsetHeight) {
                dome.scrollTop = 0;
            } else {
                dome.scrollTop++;//向上滚动1px
            }

        }
    </script>
</head>

<body>
    <div id="dome">
        <div id="dome1">
            <ul>
                <li>走到今日并非理所当然</li>
                <li>顽风尚然强劲不挠</li>
                <li>确实之物比想象中的</li>
                <li>不要少吧</li>
                <li>是因为记忆被岁月模糊了吗</li>
                <li>还是说心灵被未曾见过的陌生人所烦扰了呢?</li>
                <li>其实是支配躯体的疼痛啊</li>
                <li>即使这样还是来到了这里</li>
                <li>心无旁骛地瞻望终点就好</li>
                <li>仅此唯一的理由</li>
                <li>便是得以撒入回归之土</li>
                <li>但那浅淡微薄的梦想</li>
                <li>如能秉持初心不曾改变</li>
                <li>未来也就不会无聊了吧......</li>
            </ul>
        </div>
        <div id="dome2"></div>
    </div>

</body>

</html>

显示效果如下:
1
2

@沉木

<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> <com.google.android.material.appbar.MaterialToolbar android:id="@+id/toolbar" style="@style/Widget.TPDesign.Toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:menu="@menu/client_toolbar_menu" app:navigationIcon="@drawable/ic_back_black" app:title="@string/_clients" app:titleCentered="true"/> <com.google.android.material.tabs.TabLayout android:id="@+id/tabLayout" android:layout_width="match_parent" android:layout_height="wrap_content" app:tabBackground="@color/gray_bg" app:tabTextColor="@color/grey_text" app:tabSelectedTextColor="@color/black" app:tabMode="fixed" android:layout_marginStart="@dimen/tpds_all_text_size_16" android:layout_marginEnd="@dimen/tpds_all_text_size_16" app:layout_constraintTop_toBottomOf="@id/toolbar" /> <!-- 页面容器 --> <androidx.viewpager2.widget.ViewPager2 android:id="@+id/viewPager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1" android:layout_marginTop="@dimen/tpds_all_dp_116" android:layout_marginStart="@dimen/tpds_all_text_size_16" android:layout_marginEnd="@dimen/tpds_all_text_size_16" app:layout_constraintTop_toBottomOf="@id/tabLayout" app:layout_constraintStart_toStartOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>按照我这个布局怎么改成coordinate布局位置不变并且使得tanlayout可滑动呢
最新发布
09-16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值