用Jquery+CSS实现网页弹幕

实现效果:

Html<html>

<head>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/index.js"></script>
</head>
<style>
body{
margin: 0;
width:100%;
height:100%;
}
.box{
    width: 100%;  
    height:80%;

    z-index: 50;
  }
    .show{
     top:0;
     left:0;

width: 100%;
height:50%;
opacity:0.9;//改变值可以改变弹幕的透明度
     z-index:100;//实际上就是两个div,一个在上显示,一个在下显示,z-index就是设置显示的优先级,值越大优先级越高
    }
span{
position: absolute;
font-size: 20px;
}
</style>

<body>
<div class="box">
<div class="show"></div>
</div>

<div>
<input type="text" id="msg">
<button id="send">发送</button>
</div>
</body>
</html>

JS:
$(function () {
$('#send').click(sendMsg);
});
function sendMsg() {
var msg=$('#msg').val();
var span="<span style='color:"+getColor()+";right:0;top:"+getTop()+"; '>"+msg+"</span>";
span=$(span);
$('.show').append(span);
   //动画效果
span.stop().animate({'right':getRight(span)},8000,'linear',function () {
$(this).remove();
});

}
//获取随机字体颜色
function getColor() {
var colorArr=["#cfaf12","#12af01","#981234","#adefsa","#db6be4","#f5264c","#d34a74"];
var index=parseInt(colorArr.length*Math.random());
return colorArr[index];
}
//获取弹幕出现的随机高度位置
function getTop() {
var pageH=parseInt($('.show').height());
var top=parseInt(pageH*Math.random());
if (top>=pageH-20){
top=top-20;
}
return top;
}
//获取动画的宽度最大值
function getRight(span) {
var width=span.width();
var pageW=parseInt($('.show').width());
var w=pageW-width;
return w;
}


转载于:https://www.cnblogs.com/lihongjunjava/p/8608693.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
视频幕特效可以使用 JavaScript 和 jQuery实现,具体步骤如下: 1. 创建幕元素 首先,在视频播放器下方创建一个 div 元素,用于显示幕,将其样式设置为绝对定位,宽度为视频播放器的宽度,高度为幕字体大小的两倍,背景色为透明。 ```html <div id="danmu-container"></div> ``` ```css #danmu-container { position: absolute; bottom: 0; width: 100%; height: 2em; background-color: transparent; overflow: hidden; } ``` 2. 发送幕 使用 jQuery 监听发送按钮的点击事件,获取文本框中的幕内容,并动态创建一个 span 元素,设置其样式和文本内容,将其添加到幕容器内,设置其初始位置为容器的右侧,使用 animate() 方法实现幕的滚动效果。 ```html <input type="text" id="danmu-input"> <button id="danmu-send">发送</button> ``` ```javascript $('#danmu-send').click(function() { var content = $('#danmu-input').val(); if (content) { var $danmu = $('<span>' + content + '</span>'); $danmu.css({ position: 'absolute', top: Math.random() * ($('#danmu-container').height() - 30) + 'px', right: 0, fontSize: '1em', whiteSpace: 'nowrap', color: '#fff' }); $('#danmu-container').append($danmu); $danmu.animate({ left: $('#danmu-container').width() }, 8000, function() { $(this).remove(); }); $('#danmu-input').val(''); } }); ``` 3. 暂停幕 使用 jQuery 监听视频播放器的暂停事件,遍历幕容器内的所有幕元素,使用 stop() 方法停止幕的滚动动画,即可实现暂停幕的效果。 ```javascript $('#video-player').on('pause', function() { $('#danmu-container span').stop(); }); ``` 4. 添加特效 为了实现幕特效,可以对幕元素的样式进行修改,例如使用 CSS3 的 transform 属性实现幕的旋转效果,使用 text-shadow 属性实现幕的阴影效果等。具体代码如下: ```css #danmu-container span { position: absolute; top: 0; right: 0; font-size: 1em; white-space: nowrap; color: #fff; transform: rotateY(180deg); text-shadow: -1px -1px 0 #000, 1px -1px 0 #000, -1px 1px 0 #000, 1px 1px 0 #000; } ``` 在代码中,使用 transform 属性设置幕元素的旋转角度为 180 度,使其水平翻转,使用 text-shadow 属性设置幕元素的阴影效果,增强其边缘清晰度。 需要注意的是,幕特效的实现需要根据具体需求进行调整,例如可以添加动态缩放、透明渐变等其他效果。同时,为了避免幕重叠,可以设置幕元素之间的间隔,避免幕重叠。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值