實(shí)現(xiàn)方法:1、創(chuàng)建html文件;2、添加html代碼架構(gòu);3、在body標(biāo)簽中使用div、input、button標(biāo)簽分給頁面設(shè)計(jì)效果顯示框、輸入框、彈幕提交按鈕;4、添加script標(biāo)簽并寫入js代碼來實(shí)現(xiàn)彈幕效果;5、通過瀏覽器方式查看設(shè)計(jì)效果。
js怎么實(shí)現(xiàn)彈幕功能
具體操作方法:
1.首先創(chuàng)建一個html文件。
2.在html文件中添加html代碼架構(gòu)。
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>彈幕功能</title> </head> <body> </body> </html>
登錄后復(fù)制
3.然后在html代碼架構(gòu)中的body標(biāo)簽里面使用div、input、button標(biāo)簽分別給頁面設(shè)計(jì)一個效果顯示框、輸入框、彈幕提交按鈕。
<div id="box" class="box"></div> <input type="text" id="txt" /> <button onclick="send()">發(fā)送彈幕</button>
登錄后復(fù)制
4.在html架構(gòu)中的html標(biāo)簽里面添加script標(biāo)簽并寫入js代碼來實(shí)現(xiàn)彈幕效果。
<style> function $(str) { return document.getElementById(str); } function send() { var word = $('txt').value; var span = document.createElement('span'); var top = parseInt(Math.random() * 500) - 20; var color1 = parseInt(Math.random() * 256); var color2 = parseInt(Math.random() * 256); var color3 = parseInt(Math.random() * 256); var color = "rgb(" + color1 + "," + color2 + "," + color3 + ")"; top = top < 0 ? 0 : top; span.style.position = 'absolute'; span.style.top = top + "px"; span.style.color = color; span.style.left = '500px'; span.style.whiteSpace = 'nowrap'; var nub = (Math.random() * 10) + 1; span.setAttribute('speed', nub); span.speed = nub; span.innerHTML = word; $('box').appendChild(span); $('txt').value = ""; } setInterval(move, 200); function move() { var spanArray = $('box').children; for (var i = 0; i < spanArray.length; i++) { spanArray[i].style.left = parseInt(spanArray[i].style.left) - spanArray[i].speed + 'px'; } } </style>
登錄后復(fù)制
5.最后可通過瀏覽器方式閱讀html文件查看設(shè)計(jì)效果。
完整示例代碼如下:
彈幕功能 <div id="box" class="box"></div> <input type="text" id="txt" /> <button onclick="send()">發(fā)送彈幕</button> <script> function $(str) { return document.getElementById(str); } function send() { var word = $('txt').value; var span = document.createElement('span'); var top = parseInt(Math.random() * 500) - 20; var color1 = parseInt(Math.random() * 256); var color2 = parseInt(Math.random() * 256); var color3 = parseInt(Math.random() * 256); var color = "rgb(" + color1 + "," + color2 + "," + color3 + ")"; top = top < 0 ? 0 : top; span.style.position = 'absolute'; span.style.top = top + "px"; span.style.color = color; span.style.left = '500px'; span.style.whiteSpace = 'nowrap'; var nub = (Math.random() * 10) + 1; span.setAttribute('speed', nub); span.speed = nub; span.innerHTML = word; $('box').appendChild(span); $('txt').value = ""; } setInterval(move, 200); function move() { var spanArray = $('box').children; for (var i = 0; i < spanArray.length; i++) { spanArray[i].style.left = parseInt(spanArray[i].style.left) - spanArray[i].speed + 'px'; } } </script>
登錄后復(fù)制