在上一篇中,我们熟悉了JS 如何实现轮播图。
上文链接传送门: JS 实现轮播图~:
实际上这类抽奖、和点名器从本质上我们可以将其做成如同轮播图一样的列子。让既定的选项滚动起来,只不过我们需要在页面中加入开始和结束按钮,并个抽奖、和点名器绑定上相应事件。
如此!抽奖小程序、点名器就成了
● 实现自动无缝滚动
● 做好单个图片伪类,实现跑马灯效果
● 通过按钮控制滚动,实现开始与暂停
●最后弹出输出最后停止时的结果
创建一个数组,存放所需的数据。然后通过循环,动态添加元素。此法有利于页面优化,同事时减轻书写量。
var data = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24];
for(let i = 0;i<data.length;i++){
var li = $("" +data[i]+"");
$("#ul").append(li);
}
设置按钮
HTML :
var i = 0,timeId;
$("#start").click(function(){
clearInterval(timeId);
timeId = setInterval(function(){
$("li").removeClass("current");
$("li").eq(i).addClass("current");
i++;
if(i == 24) i = 0;
},200)
});
$("#stop").click(function(){
clearInterval(timeId);
alert("恭喜!" + $("li").eq(i-1).text()+"中奖(起来回答问题)");
})
点击开始-效果
点击停止-效果
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
ul{
list-style: none;
width: 800px;
position: absolute;
top: 300px;
left:300px;
}
li{
float: left;
width: 100px;
height: 100px;
text-align: center;
line-height: 100px;
border-radius: 50px;
background-color: skyblue;
color: aqua;
font-size: 24px;
cursor: pointer;
}
.current{
background-color: mediumpurple;
color:pink;
}
input{
margin-top: 630px;
margin-left: 450px;
}
</style>
</head>
<body>
<ul id="ul"></ul>
<input type="button" value="开始" id="start">
<input type="button" value="停止" id="stop">
<script src="jquery-1.12.4.js"></script>
<script>
var data = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24];
for(let i = 0;i<data.length;i++){
var li = $("" +data[i]+"");
$("#ul").append(li);
}
var i = 0,timeId;
$("#start").click(function(){
clearInterval(timeId);
timeId = setInterval(function(){
$("li").removeClass("current");
$("li").eq(i).addClass("current");
i++;
if(i == 24) i = 0;
},200)
});
$("#stop").click(function(){
clearInterval(timeId);
alert("恭喜!" + $("li").eq(i-1).text()+"中奖(起来回答问题)");
})
</script>
</body>
</html>