咱們平時在看一些選秀節目或一些歌唱類比賽節目時常常會看到在現場的大屏幕上會有觀衆的手機號在滾動來選出誰是幸運觀衆或誰中了什麼獎項,這些手機號都是現場觀衆或場外觀衆在給選手投票時產生的,當主持人一聲開始令下,大屏幕上的手機號就會快速隨機滾動,當主持人一聲停令下,大屏幕上會隨機出現幾個中止滾動的手機號,這種手機號批量隨機滾動的效果,就是咱們今天要實現的效果。注意,在這個效果的實現當中最核心的就是隨機和不重複。javascript
下面,我就簡單來介紹一下原理:
一、隨機,咱們要寫一個隨機數,並且這個隨機數不能重複,這個不能重複的隨機數說白了就是咱們從數據庫中取出的手機號的索引;
二、使用定時器不斷的產生不重複的隨機數,用這些不重複的隨機數去綁定手機號並將手機號追加在一個盒子中;
三、去除中獎的手機號(這個前端貌似無法實現,只能後臺去控制),當開始抽獎時再次產生不重複的隨機數,再次用這些隨機數去綁定手機號,直到抽獎結束。css
正好咱們公司最近年會上有這樣的現場抽獎,因而我就作了一個這樣的抽獎效果(咱們的抽獎號碼是用的咱們每一個人的邀請碼,不是手機號,其實原理都同樣。),並且能夠控制每次中獎的人數,配上後臺代碼和數據庫後效果還不錯,接下來就把實現代碼分享出來吧。html
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="renderer" content="webkit"> <title>互融CLUB</title> <script type="text/javascript" src="js/jquery.min.js"></script> <style> *{margin:0;padding:0;} img{display:block;} i{font-style:normal;} .vetically{justify-content:center;align-items:center;display:-webkit-flex;} .prize_con{position: absolute;width: 100%;height: 100%;background: url(images/firstp_bg.jpg) no-repeat left top / 100% 100%;overflow: hidden;} .prize_grade{font-size:98px;color: #ffe9af;text-align: center;margin: 160px auto 0;} .prize_list{width:55%;height:350px;margin: 20px auto 55px;text-align: center;overflow: hidden;} .prize_list ul{width:100%;font-size:0;} .prize_list li{display:inline-block;font-size:45px;color:#f1bf90;text-align: center;width:20%;line-height:100px;font-family:Arial