html+css+js的一些案例的分享

举报
相信光的奥特王小懒 发表于 2022/09/23 21:50:07 2022/09/23
【摘要】 案例的学习可以帮助我们更快的深入学习.

1. 模拟京东按键输入案例

无论光标在什么位置,按s键即可将光标定位到搜索框

  • 核心思路︰检测用户是否按下了s键,如果按下s键,就把光标定位到搜索框里面
  • 使用键盘事件对象里面的keyCode判断用户按下的是否是s键
  • 搜索框获得焦点:使用js 里面的focus()方法
<script>
        var search = document.querySelector('input');
        document.addEventListener('keyup', function(e) {
            // console.log(e.keyCode);
			//s键的ASCII码是83
            if (e.keyCode === 83) {
                search.focus();
            }
        })
    </script>

2. 模拟京东快递单号查询

  • 快递单号输入内容时,上面的大号字体盒子( con )显示(这里面的字号更大)
  • 表单检测用户输入∶给表单添加键盘事件
  • 同时把快递单号里面的值 ( value )获取过来赋值给con盒子( innerText )做为内容
  • 如果快递单号里面内容为空,则隐藏大号字体盒子(con)盒子

    <style>
        * {
            margin: 0;
            padding: 0;
        }
        
        .search {
            position: relative;
            width: 178px;
            margin: 100px;
        }
        
        .con {
            display: none;
            position: absolute;
            top: -40px;
            width: 171px;
            border: 1px solid rgba(0, 0, 0, .2);
            box-shadow: 0 2px 4px rgba(0, 0, 0, .2);
            padding: 5px 0;
            font-size: 18px;
            line-height: 20px;
            color: #333;
        }
        
        .con::before {
            content: '';
            width: 0;
            height: 0;
            position: absolute;
            top: 28px;
            left: 18px;
            border: 8px solid #000;
            border-style: solid dashed dashed;
            border-color: #fff transparent transparent;
        }
    </style>
</head>

<body>
    <div class="search">
        <div class="con">123</div>
        <input type="text" placeholder="请输入您的快递单号" class="jd">
    </div>
    <script>
        var con = document.querySelector('.con');
        var jd_input = document.querySelector('.jd');
        jd_input.addEventListener('keyup', function() {
                // console.log('输入内容啦');
                if (this.value == '') {
                    con.style.display = 'none';
                } else {
                    con.style.display = 'block';
                    con.innerText = this.value;
                }
            })
            // 当我们失去焦点,就隐藏这个con盒子
        jd_input.addEventListener('blur', function() {
                con.style.display = 'none';
            })
            // 当我们获得焦点,就显示这个con盒子
        jd_input.addEventListener('focus', function() {
            if (this.value !== '') {
                con.style.display = 'block';
            }
        })
    </script>

3. 发送验证码60s的时间限制

例如:哔哩哔哩网站上每次登录有一个验证码输入,且每次发送时间为60s的限制

  • 按钮点击之后,会禁用disabled为true
  • 同时按钮里面的内容会变化,注意button里面的内容通过innerHTML修改
  • 里面秒数是有变化的,因此需要用到定时器
  • 定义一个变量,在定时器里面,不断递减
  • 如果变量为0说明到了时间,我们需要停止定时器,并且复原按钮初始状态。
<html lang="en">

手机号:<input type="text" placeholder="请输入"> <button>发送</button>
<script>
    var btn = document.querySelector('button');
    var time = 10;
    btn.addEventListener('click', function () {
        this.disabled = true;
        var timer = setInterval(function () {
            if (time == 0) {
                clearInterval(timer);
                btn.disabled = false;
                time = 10;
                btn.innerHTML = '发送';
            } else {

                btn.innerHTML = "还剩" + time + "s";
                time--;
            }
        }, 1000)

    })
</script>
</html>


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。