一、需求
在时代少年团的七个人中,随机抽取一个人获得一等奖,再抽取一个获二等奖,再抽取一个获三等奖。注意同一个人不能同时获得多个奖项
如下图所示
二、代码素材
以下是缺失JS部分的代码,感兴趣的小伙伴可以先自己试着写一写
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>年会抽奖</title><style>.box {margin: 50px auto;width: 1024px;height: 576px;background-image: url(./photo15.jpg);color: white;text-align: center;}.box .duiqi {padding-top: 40px;}.box h2 {font-size: 50px;}.box h3 {font-size: 40px;}.box h4 {font-size: 30px;}</style>
</head><body><div class="box"><h2 class="duiqi">年会抽奖</h2><h2 class="duiqi">一等奖:<span>xxx</span></h2><h3 class="duiqi">二等奖:<span>xxx</span></h3><h4 class="duiqi">三等奖:<span>xxx</span></h4></div><script>const arr = ['马嘉祺', '丁程鑫', '宋亚轩', '严浩翔', '刘耀文', '贺峻霖', '张真源']</script>
</body></html>
还有图片素材我也放这了,有需要的小伙伴自取哈
注意一定要放图片,因为文字颜色是白色的,不放图片你应该能想象渲染出的效果是什么样的吧
注意一定要修改代码中的图片路径,不修改路径你应该能想象渲染出的效果是什么样的吧
三、算法思路
1、封装随机数函数,用于获得一个 N 到 M 之间的随机整数,注意左右都是闭区间:[N,M]
2、获取相关元素(一等奖、二等奖、三等奖的获奖人信息)
3、随机抽取时代少年团数组中的元素(即人名),将抽取到的人名填入一等奖、二等奖、三等奖的获奖人信息。注意抽取一个元素,就需要在数组中删除这个元素,因为同一个人不能同时获得多个奖项
四、完整代码
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>年会抽奖</title><style>.box {margin: 50px auto;width: 1024px;height: 576px;background-image: url(./photo15.jpg);color: white;text-align: center;}.box .duiqi {padding-top: 40px;}.box h2 {font-size: 50px;}.box h3 {font-size: 40px;}.box h4 {font-size: 30px;}</style>
</head><body><div class="box"><h2 class="duiqi">年会抽奖</h2><h2 class="duiqi">一等奖:<span>xxx</span></h2><h3 class="duiqi">二等奖:<span>xxx</span></h3><h4 class="duiqi">三等奖:<span>xxx</span></h4></div><script>const arr = ['马嘉祺', '丁程鑫', '宋亚轩', '严浩翔', '刘耀文', '贺峻霖', '张真源']const price = []price[0] = document.querySelector('h2 span')price[1] = document.querySelector('h3 span')price[2] = document.querySelector('h4 span')//函数功能,返回 N 到 M 之间的随机整数,[N,M]function random(N, M) {return Math.floor(Math.random() * (M - N + 1) + N)}for (let i = 0; i < price.length; i++) {const rand = random(0, 6 - i)price[i].innerHTML = arr[rand]arr.splice(rand, 1)}</script>
</body></html>