html+css+js的一些案例的分享
【摘要】 案例的学习可以帮助我们更快的深入学习.
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)