js问题,在b站的弹幕列表中使用scrolltop方法无法刷新弹幕

JavaScript012

js问题,在b站的弹幕列表中使用scrolltop方法无法刷新弹幕,第1张

简单研究了没完全解决,相关js混淆了看得眼疼。给您一个思路:在滑动条滚动时候,其实不是简单的让弹幕列表滚动而已,他其实在根据滑块的位置,不断清掉不需要显示的弹幕,又不断插入需要显示的弹幕,也就是弹幕列表内不是全部弹幕都在里面,而是在根据滑块动态调度显示的内容,因此仅仅用scrollTop(300)更改列表滚动条是无效的,要找到滑块拖动时候触发了哪个JS事件才可以。

//设置cookie

function SetCookie(name, value, days) {

days = days || 1

var times = days * 24 * 60 * 60 * 1000//换算成毫秒

var exp = new Date()

exp.setTime(exp.getTime() + times )

document.cookie = name + "=" + escape(value) + "expires=" + exp.toGMTString()

}

//获取cookie

function getCookie(name) {

var arr = document.cookie.match(new RegExp("(^|)" + name + "=([^]*)(|$)"))

if (arr != null) arr = unescape(arr[2])

return arr

}

当用户设置关闭弹幕的时候调用设置cookie

SetCookie("isBarrageOff","true",1)

然后每次获取弹幕的cookie,判断是否为true即可

var isBarrageOff = getCookie("isBarrageOff")

if (isBarrageOff === "true") {

//不显示弹幕

}