JS——初始DOM的相关操作练习

文章目录

  • 前言
  • 一、页面的开关灯
  • 二、根据系统时间提示信息
  • 三、广告的打开与关闭
  • 四、输入框的文字隐藏
  • 五、页面密码框
  • 总结


前言

前文介绍了初识DOM的相关知识点(感兴趣的朋友欢迎翻阅),本文就向大家分享一些利用对DOM操作解决简单实际应用的过程。


一、页面的开关灯

1.成果图:

 

2.需求:

  • 当点击开关时,页面的颜色进行相应的改变,模拟开关灯的景象。

3.JS实现过程:

<!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>
    <link rel="stylesheet" href="./CSS/reset.css">
    <style>
        /* 灯泡区域外部容器样式设置 */
        .light-wrapper {
            width: 200px;
            height: 250px;
            position: relative;
            margin: 100px auto;
        }

        .light {
            width: 100%;
            height: 200px;
            background-color: yellow;
            border-radius: 50%;
            position: absolute;
            z-index: 10;
        }

        .base {
            width: 140px;
            height: 80px;
            background-color: silver;
            position: absolute;
            z-index: 5;
            top: 150px;
            left: 15%;
            border-radius: 90%;
        }

        /* 按钮样式设置 */
        #btn {
            height: 80px;
            width: 80px;
            margin-left: 47.5%;
            font-size: 22px;
            border-radius: 50%;
        }
    </style>
</head>

<body>
    <!-- 灯泡区域外部容器 -->
    <div class="light-wrapper">
        <!-- 灯泡 -->
        <div class="light" id="light"></div>
        <!-- 灯泡底座 -->
        <div class="base" id="base"></div>
    </div>
    <!-- 开关区域 -->
    <div>
        <button id="btn">OPEN</button>
    </div>


    <!-- 实现页面开关的js部分 -->
    <script>
        //  获取 id 为 btn 的按钮 
        var btn = document.getElementById('btn');

        // 获取页面元素 body
        var body = document.body;

        // 获取元素灯泡
        var light = document.getElementById('light');

        // 获取元素灯泡底座
        var base = document.getElementById('base');

        console.log(light);
        // 设置标识符
        var flag = true;
        // 设置按钮的点击事件
        btn.onclick = function () {
            flag = !flag;
            if (flag) {
                btn.innerText = 'OPEN';
                body.style.backgroundColor = '#fff';
                light.style.backgroundColor = 'yellow';
                base.style.backgroundColor = 'silver';
            } else {
                btn.innerText = 'CLOSE';
                body.style.backgroundColor = 'black';
                light.style.backgroundColor = 'gray';
                base.style.backgroundColor = 'silver';
            }

        }
    </script>


</body>

</html>


二、根据系统时间提示信息

1.成果图:

2.需求:

  • 根据当前系统时间给予用户相应的提示信息
  • 例如,当前时间为上午时,提示信息为“上午好呀,xxxx”。

3.JS实现过程

<!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>
        /* 提示信息外部容器样式设置 */
        .wrapper {
            width: 310px;
            height: 150px;
            background-color: rgba(203, 229, 232, 0.83);
            margin: 100px auto;
        }

        /* 标题样式设置 */
        .word {
            background-color: pink;
            font-size: 20px;
            padding-left: 40px;
        }

        /* 当前时间区域样式设置 */
        #time {
            padding-left: 20px;
        }

        /* 提示信息区域样式设置 */
        #msg {
            padding-left: 20px;
            font-size: 20px;
        }
    </style>
</head>

<body>
    <!-- 提示信息外部容器 -->
    <div class="wrapper">
        <!-- 标题区域-->
        <p class="word">Bonsoir:欢迎你的登录!</p>
        <!-- 显示当前时间区域 -->
        <p id="time"></p>
        <!-- 提示信息区域-->
        <div id="msg"></div>
    </div>

    <!-- JS部分 -->
    <script>
        // 获取显示当前时间元素
        var time = document.getElementById('time');

        // 获取提示信息区域元素
        var msg = document.getElementById('msg');

        // 获取当前系统时间
        var now = new Date();

        // 分别获取时间分量
        var year = now.getFullYear();
        var month = now.getMonth() + 1;
        var date = now.getDate();
        var day = now.getDay();
        var hours = now.getHours();
        var minutes = now.getMinutes();
        var seconds = now.getSeconds();
        var dateNow = year + '-' + month + '-' + date + ' ' + '周' + day + '  ' + hours + ':' + minutes + ':' + seconds;
        time.innerText = '当前时间是: ' + dateNow;
    
        // 根据时间进行提示判断
        if (hours < 12) {
            msg.innerText = '上午好呀,Bonsoir!';
        } else if (hours < 17) {
            msg.innerText = '下午好呀,Bonsoir!';
        } else {
            msg.innerText = '晚上好呀,Bonsoir!';
        }
    </script>
</body>

</html>

三、广告的打开与关闭

1.成果图:

2.需求:

  • 初始页面时广告区域应该呈现,当用户点击关闭按钮时,关闭当前广告,反之则打开

3.JS实现过程:

<!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>
    <link rel="stylesheet" href="./CSS/reset.css">
    <style>
        /*表单区域外部容器样式设置*/
        form {
            width: 300px;
            height: 350px;
            background-color: rgba(205, 228, 236, 0.934);
            margin: 100px auto 0 auto;
        }

        /* 按钮样式设置 */
        button {
            width: 60px;
            height: 40px;
        }

        /* 广告区域样式设置 */
        .banner {
            width: 100%;
            height: 200px;
            margin-top: 20px;
            background-color: pink;
            font-weight: bold;
        }
    </style>
</head>

<body>
    <!-- 表单区域外部容器 -->
    <form action="#">
        <!--按钮区域 -->
        <button id="btn">关闭</button>
        <!-- 广告区域 -->
        <div class="banner">我是一个广告!</div>
    </form>


    <!-- 实现广告显示状态变换的JS部分 -->
    <script>
        // 获取广告区域
        var div = document.getElementsByTagName('div')[0];
        // 获取按钮
        var btn = document.getElementById('btn');

        // 设置标识符
        var flag = true;
        // 设置按钮的点击事件
        btn.onclick = function () {
            flag = !flag;
            if (flag) {
                btn.innerText = '关闭';
                div.style.visibility = 'visible';
            } else {
                btn.innerText = '打开';
                div.style.visibility = 'hidden';
            }
        }
    </script>

</body>

</html>

四、输入框的文字隐藏

1.成果图:

 2.需求:

  • 当输入框获取焦点时,输入框内预留文字消失
  • 失去焦点时,输入框内预留文字出现

3.JS实现过程:

<!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>
    <link rel="stylesheet" href="./CSS/reset.css">
    <style>
        /* 输入框外部容器样式设置 */
        .wrapper {
            width: 350px;
            margin: 100px auto 0 auto;
        }

        /* 输入框样式设置 */
        #input {
            width: 300px;
            height: 30px;
            outline: none;
        }
    </style>
</head>

<body>
    <!-- 输入框外部容器 -->
    <form class="wrapper" action="#">
        <!-- 输入框 -->
        <input type="text" id="input" placeholder="请输入您的用户名:">
    </form>

    <!-- 实现输入框显示样式变化的js部分 -->
    <script>
        // 获取输入框
        var input = document.getElementById('input');
        // 为输入框设置获取焦点与失去焦点事件
        input.onfocus = function () {
            input.placeholder = '';
        }
        input.onblur = function () {
            input.placeholder = '请输入您的用户名:';
        }


    </script>
</body>

</html>

五、页面密码框

1.成果图:

2.需求:

  • 实现密码框显示状态的切换,初始时密码为不可见状态,同时小眼睛的状态也为打开状态
  • 当用户点击输入框后的小眼睛,输入框的内容变为文本可见状态,同时小眼睛的状态也为关闭状态。

3.JS实现过程: 

<!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>
    <link rel="stylesheet" href="./JS/font_3547761_ecdde3pwrko/iconfont.css">
    <link rel="stylesheet" href="./CSS/reset.css">
    <style>
        /* 输入框外部容器样式设置 */
        .wrapper {
            width: 300px;
            position: relative;
            margin: 100px auto 0 auto;
        }

        /* 输入框样式设置 */
        #input {
            width: 100%;
            height: 30px;
            outline: none;
        }

        /* 小图标样式设置 */
        i {
            position: absolute;
            top: 10px;
            right: 7px;
            cursor: pointer;
        }
    </style>
</head>

<body>
    <!-- 输入框外部容器 -->
    <div class="wrapper">
        <!-- 输入框 -->
        <input type="text" id="input">
        <!-- 小眼睛区域 -->
        <i class="iconfont" id="eyes">&#xe661;</i>
    </div>

    <!-- 实现文本样式变化的JS部分 -->
    <script>
        // 获取小眼睛图标
        var eyes = document.getElementById('eyes');
        // 获取输入框
        var input = document.getElementById('input');
        // 设置标识符
        var flag = true;
        // 为小眼睛设置点击事件
        eyes.onclick = function () {
            flag = !flag;
            if (flag) {
                eyes.innerHTML = '&#xe796';
                input.type = 'text';
            } else {
                eyes.innerHTML = '&#xe661';
                input.type = 'password';
            }
        }
    </script>
</body>

</html>

总结

好了,就此停笔,最后依旧诚挚祝福屏幕前的你健康幸福、平安喜乐。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值