饿虎岗资源网 Design By www.oxmxm.com
本文实例为大家分享了js实现弹幕墙效果的具体代码,供大家参考,具体内容如下
1.首先要考虑弹幕墙需要什么:一面墙,输入框,发射按钮,关闭和开启弹幕按钮,在此关闭和开启设置为同一个按钮;
2.其次弹幕上墙以后需要移动,从墙的最右边移动到最左边,当移动到最左边时,这条弹幕就要消失;
3.初步的想法应该就是当在输入框输入你要发送的内容,点击发送按钮,在墙上会新建一个div来包含这条弹幕内容,再给这个div相应的移动动画class;
4.弹幕颜色随机,单条弹幕之间有间隔;
取随机颜色这里用的是
"#"+(Math.random()*0x1000000<<0).toString(16)
首先,写出它的静态页面;
<!--墙--> <h1>弹幕墙</h1> <div id="container"> </div> <!--弹幕发送关闭--> <div class="s_c"> <input id="message" type="text" placeholder="说点什么"> <div class="btn"> <button id="sent">发射弹幕</button> <button id="clear">关闭弹幕</button> </div> </div>
css样式
#container{ /*width:700px;*/ height:500px; margin:50px 100px; border:solid 2px #7a2a1d; } h1{ text-align:center; } .s_c{ width:500px; margin:0 auto; } #message{ width:400px; height:30px; margin:0 auto; position:relative; left:50px; } .btn{ padding-top:20px; height:30px; margin-left:150px; } #sent,#clear{ width:100px; }
js代码部分:
var arr = [];//用于保存弹幕数据的数组; var start = true;//用于判断是否需要开启弹幕 $(document).ready(function(){ var showscreen = $("#container");//弹幕墙的div var showHeight = showscreen.height();//弹幕墙div的高度 var showWidth = showscreen.width();//弹幕墙div的宽度 //点击发射按钮事件 $("#sent").click(function(){ var text = $("#message").val();//获取用户输入的待发送弹幕 $("#message").val("");//清空弹幕发送区 arr.push(text);//将数据存入实现定义好的用于保存弹幕数据的数组 var send_div=$("<div>"+text+"</div>"); showscreen.append(send_div); // var send_text=$("<div>+text+</div>");//新建div弹幕条 // var send_div = document.createElement("div"); // var inner = document.createTextNode(text); // send_div.appendChild(inner); // document.getElementById("container").appendChild(send_div)//把弹幕挂在墙上 move_text(send_div); }) //按回车发送 $("input").keydown(function(event){ if(event.keyCode == 13){ $("#sent").trigger("click");//trigger触发被选元素的指定事件类型,触发#send事件的click类型 } }) if(start==false){ start = true; $("#clear").html("关闭弹幕"); run(); } //关闭/开启弹幕按钮点击事件 $("#clear").click(function(){ if(start == true){ start = false; $("#clear").html("开启弹幕"); showscreen.empty(); }else if(start == false){ start = true; $("#clear").html("关闭弹幕"); run() } }); var topMin = showscreen.offset().top; var topMax = topMin+showHeight; var top = topMin; var move_text = function(obj){ obj.css({ display:"inline", position:"absolute" }) var begin = showscreen.width() - obj.width(); //一开始的起点 top+=50; if(top > topMax-50){ top = topMin; } //console.log("showscreenWidth"+showscreen.width()); //console.log("objWidth",obj.width()); obj.css({ left:begin, top:top, color:getRandomColor() }); var time = 20000 + 10000*Math.random(); obj.animate({ left:"-"+begin+"px" },time,function(){ obj.remove(); }); }; var getRandomColor = function(){ return '#'+('00000'+(Math.random()*0xffffff <<0).toString(16)).substr(-6); } var run = function(){ if(start == true){ if(arr.length > 0){ var n = Math.floor(Math.random()* arr.length + 1)-1; var textObj = $("<div>"+arr[n]+"</div>"); showscreen.append(textObj); //console.log("loop:"+textObj.html()); move_text(textObj); } } setTimeout(run,3000); } jQuery.fx.interval = 50; run(); })
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
饿虎岗资源网 Design By www.oxmxm.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
饿虎岗资源网 Design By www.oxmxm.com
暂无评论...
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
2024年11月16日
2024年11月16日
- 群星《2024好听新歌36》AI调整音效【WAV分轨】
- 梁朝伟.1986-朦胧夜雨裡(华星40经典)【华星】【WAV+CUE】
- 方芳.1996-得意洋洋【中唱】【WAV+CUE】
- 辛欣.2001-放120个心【上海音像】【WAV+CUE】
- 柏菲·万山红《花开原野1》限量开盘母带ORMCD[低速原抓WAV+CUE]
- 柏菲·万山红《花开原野2》限量开盘母带ORMCD[低速原抓WAV+CUE]
- 潘安邦《思念精选集全纪录》5CD[WAV+CUE]
- 杨千嬅《千嬅新唱金牌金曲》金牌娱乐 [WAV+CUE][985M]
- 杨钰莹《依然情深》首版[WAV+CUE][1G]
- 第五街的士高《印度激情版》3CD [WAV+CUE][2.4G]
- 三国志8重制版哪个武将智力高 三国志8重制版智力武将排行一览
- 三国志8重制版哪个武将好 三国志8重制版武将排行一览
- 三国志8重制版武将图像怎么保存 三国志8重制版武将图像设置方法
- 何方.1990-我不是那种人【林杰唱片】【WAV+CUE】
- 张惠妹.1999-妹力新世纪2CD【丰华】【WAV+CUE】