JavaScript案例整理
(素材源自B站pink老师)
一、仿京东密码输入
- 点击眼睛按钮,眼睛睁开时,显示密码可见,眼睛闭起来是,所输入的密码不可见
<style>
.box {
position: relative;
width: 400px;
border-bottom: 1px solid #ccc;
margin: 100px auto;
}
.box input {
width: 370px;
height: 30px;
border: 0;
outline: none;
}
.box img {
position: absolute;
top: 2px;
right: 2px;
width: 24px;
}
</style>
<div class="box">
<label for="">
<img src="./images/close.png" alt="" id="eye">
</label>
<input type="password" name="" id="pwd">
</div>
- 获取ID为eye和ID为pwd的值分别赋值给eye和pwd这两个变量
- 设置一个flag变量,表示眼睛开闭状态,输入密码可见flag值为0,反则,当flag=1时则密码不可见
- 当点击#eye标签时,首先判断flag的值,如果为0,将密码框类型转换为文本类型,最后将flag的值赋为1。如果flag的值一开始就不是0,那就把密码框的类型转换为密码框
<script type="text/javascript">
var eye = document.getElementById("eye");
var pwd = document.getElementById("pwd");
var flag = 0;
eye.onclick = function(){
if(flag == 0){
pwd.type = 'text';
eye.src = './images/open.png';
flag = 1;
}else{
pwd.type = 'password';
eye.src = './images/close.png';
flag = 0
}
}
</script>
二、仿淘宝隐藏二维码
- 当鼠标点击二维码关闭按钮的时候,则关闭整个二维码
- 利用样式的显示和隐藏
- display:none 隐藏元素
- display:block 显示元素
<style>
.box{
position: relative;
width: 74px;
height: 88px;
border: 1px solid #ccc;
margin: 100px auto;
font-size: 12px;
text-align: center;
color: #f40;
}
.box img{
width: 60px;
margin-top: 5px;
}
.close-btn{
position: absolute;
top: -1px;
left: -16px;
width: 14px;
height: 14px;
border: 1px solid #ccc;
line-height: 14px;
font-family: Arial, Helvetica, sans-serif;
cursor: pointer;
}
</style>
<div class="box">
淘宝二维码
<img src="images/tao.png" alt="">
<i class="close-btn">×</i>
</div>
``
```javascript
<script type="text/javascript">
var box = document.querySelector(".box");
var close = document.querySelector(".close-btn");
close.onclick = function(){
box.style.display = 'none';
}
</script>
三、循环精灵图
- 精灵图图片排列是有规律的
- 利用for循环 修改精灵图片的背景位置 background-position
- x坐标 i(索引号) y坐标 i*44
<style>
* {
margin: 0;
padding: 0;
}
li {
list-style-type: none;
}
.box {
width: 250px;
margin: 100px auto;
}
.box li {
float: left;
width: 24px;
height: 24px;
background-color: pink;
margin: 15px;
background: url(images/sprite.png) no-repeat;
}
</style>
<div class="box">
<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>
</ul>
</div>
<script type="text/javascript">
var lis = document.querySelectorAll("li");
for (var i=0;i<lis.length;i++){
var index = i*44;
lis[i].style.backgroundPosition = '0 -'+index+'px';
}
</script>
四、显示隐藏文本框内容
<style>
input {
color: #999;
}
</style>
<input type="text" value="手机">
<script type="text/javascript">
var text = document.querySelector("input");
text.onfocus = function(){
if(this.value === '手机'){
this.value = ' ';
}
this.style.color = '#333';
}
text.onblur = function(){
if(this.value === ' '){
this.value = '手机';
}
this.style.color = '#999'
}
</script>
五、密码框验证信息
<style>
div {
width: 600px;
margin: 100px auto;
}
.message {
display: inline-block;
font-size: 12px;
color: #999;
background: url(images/mess.png) no-repeat left center;
padding-left: 20px;
}
.wrong {
color: red;
background-image: url(images/wrong.png);
}
.right {
color: green;
background-image: url(images/right.png);
}
</style>
<div class="register">
<input type="password" class="ipt">
<p class="message">请输入6~16位密码</p>
</div>
<script type="text/javascript">
var ipt = document.querySelector(".ipt")
var message = document.querySelector(".message")
ipt.onblur = function(){
if(this.value.length<6 || this.value.length>16){
message.className = "message wrong";
message.innerHTML = "您输入的位数有误"
}else{
message.className = "message right";
message.innerHTML = "您输入的位数正确"
}
}
</script>
开关灯
<button id="btn">开关灯</button>
<script type="text/javascript">
var btn = document.getElementById("btn");
var flag = 0;
btn.onclick = function(){
if(flag==0){
document.body.style.backgroundColor = "#000";
flag = 1;
}else{
document.body.style.backgroundColor = "#fff"
flag = 0;
}
}
</script>
百度换肤
<style>
* {
margin: 0;
padding: 0;
}
body {
background: url(images/1.jpg) no-repeat center top;
}
li {
list-style: none;
}
.baidu {
overflow: hidden;
margin: 100px auto;
background-color: #fff;
width: 410px;
padding-top: 3px;
}
.baidu li {
float: left;
margin: 0 1px;
cursor: pointer;
}
.baidu img {
width: 100px;
}
</style>
<ul class="baidu">
<li><img src="images/1.jpg"></li>
<li><img src="images/2.jpg"></li>
<li><img src="images/3.jpg"></li>
<li><img src="images/4.jpg"></li>
</ul>
<script type="text/javascript">
var imgs = document.querySelector(".baidu").querySelectorAll('img');
for(var i=0;i<imgs.length;i++){
imgs[i].onclick = function(){
document.body.style.backgroundImage = 'url('+this.src+')';
}
}
</script>