最近做了个小练习,三个按钮,分别实现三个不同的功能
第一个按钮点击抽奖,只有未中奖以及中奖两个选项 ps:奖品是兰博基尼5元代金卷(里面循环了一些海景别墅,500万彩票,都是假的)
第二个按钮 选中下方的模块,然后点击可以让模块置顶
第三个按钮 对剩余按钮进行排序,点一下正序,再点一倒序
很简单的三个功能,还是花了我一点时间,哈哈哈哈哈哈哈哈哈
上代码
这里是有个排序的方法:
/*(正序倒序切换)排序方法*/ function sortArr(a,b){ return a > b?b - a:a - b } /* 生成随机整数*/ function randomNumber(max,min){ return parseInt(Math.random()*(max-min+1)+min); } $(function(){ $(‘.mask‘).height($(window).height()) $(‘.closeMask‘).click(()=>{ $(‘.mask‘).css("top",‘-100%‘) }) })
这里是html
<!-- 顶部置顶容器 -->
<div class="topBox">
</div>
<!-- 三个按钮容器 -->
<div class="btnBox">
<button class="luckDraw">抽奖</button>
<button class="roofPlacement">置顶</button>
<button class="sort">排序</button>
<a href="tel:13764567708"></a>
</div>
<div>
<h1 class="luckly">点击上方抽奖按钮进行抽奖</h1>
</div>
<div>
<!-- 排序容器 -->
<ul class="sortBox">
</ul>
</div>
<div class="mask">
<canvas id="canvas"></canvas>
<div class="maskContent">
<span class="closeMask">x</span>
<p>幸运儿,赶快怒戳下方的连接购买把!</p>
<a href="https://www.lamborghini.com/cn-en/">点击购买</a>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
<script src="./function.js"></script>
<script src="./canvas.js"></script>
<script>
let arr = [1,2,3,4,5,6,7,8,9,10],
topArr = [];
prize = [‘海景房一套‘,‘泡枸杞保温杯一个‘,‘劳斯莱斯幻影‘,‘再接再厉‘,‘500万彩票‘,‘兰博基尼5元代金卷‘]
// 抽奖
$(".luckDraw").click(()=>{
let t = setInterval(function(){
$(".luckly").text(prize[randomNumber(prize.length-1,0)])
},100)
setTimeout(() => {
clearInterval(t)
var ran=Math.ceil(Math.random()*1000)
if(ran<95){
$(".luckly").html("恭喜你中奖了,获得兰博基尼5元代金卷一张,赶快去购买吧")
setTimeout(() => {
$(‘.mask‘).css("top",‘0‘)
},1000)
}else if(94<ran<1000){
$(".luckly").html("再接再厉")
}
}, 2000);
})
//置顶按键
$(‘.roofPlacement‘).click(() => {
// console.log(topArr)
let len = arr.length - 1
for(let i=len;i>=0;i--){ //反向循环,解决使用splice方法删除数组不完全的情况
if($(‘.sortBox>li‘)[i].className == "show"){
topArr.push($(‘.sortBox>li‘)[i].innerHTML)
arr.splice(i,1); //splice方法删除数组
// delete arr[i] //delete方法删除数组,不会改变原数组,删除后的值是undefine
}
console.log(arr)
}
loadingSortBox()//重载排序盒子
loadingLi() //重载遍历排序盒子
for(let i=0;i<topArr.length;i++){
$(".topBox").append(
`<li>${topArr[i]}</li>`
)
}
topArr = [];
})
// 排序
$(".sort").click(()=>{
arr.sort(sortArr) // 调用function内的排序方法
$(‘.sortBox‘).html(‘‘) //清空排序容器
for(let i=0;i<arr.length;i++){
$(".sortBox").append(
`
<li>${arr[i]}</li>
`
)
}
loadingLi() //重载排序盒子
})
function loadingSortBox(){
$(".sortBox").html("")
for(let i=0;i<arr.length;i++){
$(".sortBox").append(
`
<li>${arr[i]}</li>
`
)
}
}
function loadingLi(){
$(".sortBox>li").each(function(i){
$(this).click(() =>{ //闭包
$(".sortBox>li")[i].classList.toggle("show")//切换选中效果
});
});
}
loadingLi() //选中每个li的效果
loadingSortBox()//加载排序盒子
</script>
原文:https://www.cnblogs.com/jialun-Online/p/11906912.html