请问下这个js怎么修改

qingwadaxia_1 2020-09-24 04:48:51
<!DOCTYPE html>
<html lang="en">

<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
}

div {
width: 100px;
height: 63px;
/* 必须 */
overflow: hidden;
/* 必须 */
margin: 50px auto;
border: 1px solid red;
text-align: center;
}

ul {
list-style: none;
}
</style>
</head>

<body>
<div id="review_box">

<ul id="comment1">

<li>第一条</li>

<li>第二条</li>

<li>第三条</li>

<li>第四条</li>

<li>第五条</li>

<li>第六条</li>
</ul>

<ul id="comment2"></ul>
</div>
<script>
window.onload = 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; // 开始无滚动时设为0
var timer = setInterval(rollStart, t); // 设置定时器,参数t用在这为间隔时间(单位毫秒),参数t越小,滚动速度越快
// 鼠标移入div时暂停滚动
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");
// 正常滚动不断给scrollTop的值+1,当滚动高度大于列表内容高度时恢复为0
if (ulbox.scrollTop >= ul1.scrollHeight) {
ulbox.scrollTop = 0;
} else {
ulbox.scrollTop++;
}
}
</script>
</body>

</html>

上面是一个向上滚动的代码,但是网页缩放百分比低于百分之80 之后, 就不会滚动了,页面放了一段时间后,鼠标移入 滚动停止事件也会出现异常,请问怎么修改下 兼容完美更好些
...全文
5575 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingwadaxia_1 2020-09-24
  • 打赏
  • 举报
回复
引用 1 楼 scscms太阳光 的回复:
替换掉js代码
//页面缩小到一定程度时不动的原因是ulbox.scrollTop++每增加1px经过缩小被忽略为0了
window.onload = function(){
    var h = 0;//高度,自增,避免被缩放忽略
    var isStop = false;//是否停止
    var ul1 = document.getElementById("comment1");
    var ul2 = document.getElementById("comment2");
    var ulbox = document.getElementById("review_box");
    ul2.innerHTML = ul1.innerHTML;
    ulbox.onmouseover = function() {
        isStop = true
    }
    ulbox.onmouseout = function() {
        isStop = false
    }
    setInterval(()=>{
        if(!isStop){
            h = h >= ul1.scrollHeight ? 0: h + 1
            ulbox.scrollTop = h
        }
    },50)
};
引用 1 楼 scscms太阳光 的回复:
替换掉js代码
//页面缩小到一定程度时不动的原因是ulbox.scrollTop++每增加1px经过缩小被忽略为0了
window.onload = function(){
    var h = 0;//高度,自增,避免被缩放忽略
    var isStop = false;//是否停止
    var ul1 = document.getElementById("comment1");
    var ul2 = document.getElementById("comment2");
    var ulbox = document.getElementById("review_box");
    ul2.innerHTML = ul1.innerHTML;
    ulbox.onmouseover = function() {
        isStop = true
    }
    ulbox.onmouseout = function() {
        isStop = false
    }
    setInterval(()=>{
        if(!isStop){
            h = h >= ul1.scrollHeight ? 0: h + 1
            ulbox.scrollTop = h
        }
    },50)
};
引用 1 楼 scscms太阳光 的回复:
替换掉js代码
//页面缩小到一定程度时不动的原因是ulbox.scrollTop++每增加1px经过缩小被忽略为0了
window.onload = function(){
    var h = 0;//高度,自增,避免被缩放忽略
    var isStop = false;//是否停止
    var ul1 = document.getElementById("comment1");
    var ul2 = document.getElementById("comment2");
    var ulbox = document.getElementById("review_box");
    ul2.innerHTML = ul1.innerHTML;
    ulbox.onmouseover = function() {
        isStop = true
    }
    ulbox.onmouseout = function() {
        isStop = false
    }
    setInterval(()=>{
        if(!isStop){
            h = h >= ul1.scrollHeight ? 0: h + 1
            ulbox.scrollTop = h
        }
    },50)
};
引用 1 楼 scscms太阳光 的回复:
替换掉js代码
//页面缩小到一定程度时不动的原因是ulbox.scrollTop++每增加1px经过缩小被忽略为0了
window.onload = function(){
    var h = 0;//高度,自增,避免被缩放忽略
    var isStop = false;//是否停止
    var ul1 = document.getElementById("comment1");
    var ul2 = document.getElementById("comment2");
    var ulbox = document.getElementById("review_box");
    ul2.innerHTML = ul1.innerHTML;
    ulbox.onmouseover = function() {
        isStop = true
    }
    ulbox.onmouseout = function() {
        isStop = false
    }
    setInterval(()=>{
        if(!isStop){
            h = h >= ul1.scrollHeight ? 0: h + 1
            ulbox.scrollTop = h
        }
    },50)
};
好像有点抖动,滚动的时候,
horizon_zpy 2020-09-24
  • 打赏
  • 举报
回复
marquee

滚动是不是好些
scscms太阳光 2020-09-24
  • 打赏
  • 举报
回复
替换掉js代码
//页面缩小到一定程度时不动的原因是ulbox.scrollTop++每增加1px经过缩小被忽略为0了
window.onload = function(){
    var h = 0;//高度,自增,避免被缩放忽略
    var isStop = false;//是否停止
    var ul1 = document.getElementById("comment1");
    var ul2 = document.getElementById("comment2");
    var ulbox = document.getElementById("review_box");
    ul2.innerHTML = ul1.innerHTML;
    ulbox.onmouseover = function() {
        isStop = true
    }
    ulbox.onmouseout = function() {
        isStop = false
    }
    setInterval(()=>{
        if(!isStop){
            h = h >= ul1.scrollHeight ? 0: h + 1
            ulbox.scrollTop = h
        }
    },50)
};

87,904

社区成员

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

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