请大家帮忙看看这个js问题出在哪儿,感谢回答

qingwadaxia_1 2020-10-10 10:38:43
/* 滚动 */
roll(50);

function roll(t) {
var ul1 = document.getElementById("comment1");
var ul2 = document.getElementById("comment2");
var ulbox = document.getElementById("review_box");
ul2.innerHTML = ul1.innerHTML;
ulbox.scrollTop = 0;
var timer = setInterval(rollStart, t);
ulbox.onmouseover = function() {
clearInterval(timer);
}
// 鼠标移出div后继续滚动
ulbox.onmouseout = function() {
timer = setInterval(rollStart, t);
}
}
// 开始滚动函数
function rollStart() {
// 上面声明的DOM对象为局部对象需要再次声明
var ul1 = document.getElementById("comment1");
var ul2 = document.getElementById("comment2");
var ulbox = document.getElementById("review_box");

if (ulbox.scrollTop > ul1.scrollHeight) {
ulbox.scrollTop = 0;
} else {
ulbox.scrollTop++;
}

}

/*滚动结束*/

这是一个表格向上循环滚动的js,一般情况下,没什么问题,鼠标移入也可以停止滚动,但是有的时候,鼠标放在内容里,多刷新几次,会出现鼠标移入无法停止滚动事件的情况,滚动的速度是稍微变慢了一点,实在不知道具体什么原因
...全文
2842 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingwadaxia_1 2020-10-11
  • 打赏
  • 举报
回复
引用 4 楼 風灬雲 的回复:
设置定时器的时候 先清空一次 clearInterval(timer); 按正常情况 over和out 会交替执行 但是有时候可能会异常;setInterval之前 先执行一次 clearInterval(timer) 应该就可以
不愧是拿了小花花的,确实可以了,感谢!
CloudJay_喵喵喵 2020-10-10
  • 打赏
  • 举报
回复
timer判断下啊,null才setInterval
風灬雲 2020-10-10
  • 打赏
  • 举报
回复
设置定时器的时候 先清空一次 clearInterval(timer); 按正常情况 over和out 会交替执行 但是有时候可能会异常;setInterval之前 先执行一次 clearInterval(timer) 应该就可以
qingwadaxia_1 2020-10-10
  • 打赏
  • 举报
回复
引用 2 楼 JiexC0la 的回复:
你把onmouseover和onmouseout改成onmouseenter、onmouseleave。onmouseover和onmouseout会被子元素触发
感谢回答,但是还是有这个情况,移入无法停止滚动事件
JiexC0la 2020-10-10
  • 打赏
  • 举报
回复
你把onmouseover和onmouseout改成onmouseenter、onmouseleave。onmouseover和onmouseout会被子元素触发
qingwadaxia_1 2020-10-10
  • 打赏
  • 举报
回复
在线等。。。。

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧