公司有一個 case 要在網頁模仿轉盤亮燈的功能,陽春的寫法如下。
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Game</title> <link rel="stylesheet" href="game.css"> <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script> <script src="game.js"></script> </head> <body> <button type="button" id="start">start</button> <ul> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> </body> </html>
CSS
ul { margin: 0; padding: 0; list-style: none; } li { width: 100px; height: 100px; border: 2px solid red; float: left; margin: 2px; } .on { border: 2px solid pink; }
JS
$(function() { var start = $('#start'); var lis = $('li'); start.on('click', function() { var rounds = 40 + Math.floor((Math.random() * lis.size())); $(this).prop('disabled', true); spin(lis.filter(':first'), rounds); }); function spin(li, rounds) { var duration = rounds < 5 ? 1000 : 70; lis.clearQueue(); li.delay(duration).queue(function() { var next = $(this).next('li'); lis.removeClass('on'); if (next.size() === 0) { next = lis.filter(':first'); } li.addClass('on'); if (rounds - 1 >= 0) { spin(next, rounds -1); } else { start.prop('disabled', false); } }); } });
沒有留言:
張貼留言