目前用JS实现效果:决策报表滚动到底部停留30s,请问可以改成重置回到顶部时 停留30s吗

以下是目前的JS,谢谢大神解答:重置回到顶部停留


setTimeout(function() {

    var $report = $("div[widgetname=REPORT0]");

    //获取对应report的div元素

    var $scroll = $report.find("#frozen-center");

    //获取对应report的div元素的滚动块元素,冻结为#frozen-center,未冻结且未安装自定义滚动条插件为.reportContent,未冻结且安装了自定义滚动条插件为.scrollDiv

    var flag = window.flag0;

    //设置全局变量flag,每个报表块需保证各不相同

    $report.find("#frozen-center").css('overflow-x', 'hidden');

    $report.find("#frozen-center").css('overflow-y', 'hidden');

    $report.find("#frozen-north").css('overflow-x', 'hidden');

    $report.find("#frozen-north").css('overflow-y', 'hidden');

    //冻结情况下隐藏滚动条

    $report.find(".reportContent").css('overflow-y', 'hidden');

    $report.find(".reportContent").css('overflow-x', 'hidden');

    //非冻结情况下隐藏滚动条

    flag = true;

    //定义全局参数flag,用来控制滚动的暂停和继续

    $scroll.mouseover(function() {

        flag = false;

    })

    //鼠标悬浮,滚动停止

    $scroll.mouseleave(function() {

        flag = true;

    })

    //鼠标离开,继续滚动

    var old = -1;

    setInterval(function() {

        if (flag) {

            currentpos = $scroll[0].scrollTop;

            //获取距顶部距离

            if (currentpos == old) {

            for(var t = Date.now(); Date.now() - t <= 30000;)

            //到达底部,停留30秒

            $scroll[0].scrollTop = 0;

                //若已到达底部,则重置

            } else {

                old = currentpos;

                $scroll[0].scrollTop = currentpos + 1.5;

                //若未到达底部,则向下移动1.5像素

            }

        }

    }, 25);

    //以25ms的频率执行

}, 500);


FineReport 13736712550 发布于 2020-4-22 16:46
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
snrtuemcLv8专家互助
发布于2020-4-22 16:51

直接将

for(var t = Date.now(); Date.now() - t <= 30000;)

移到

$scroll[0].scrollTop = 0;下面


$scroll[0].scrollTop = 0;

for(var t = Date.now(); Date.now() - t <= 30000;)


123.png

  • 13736712550 13736712550(提问者) 不行啊兄弟,报错了~这个我开始也试过 这里写在前面的大神应该是别有用意的
    2020-04-22 20:05 
最佳回答
0
anwenLv4见习互助
发布于2020-7-2 16:35

blob.png把currentpos2定义在old下面,

然后在这个位置blob.png加是这个方法

         setTimeout(function() {

if(currentpos2==0){

for(var t = Date.now(); Date.now() - t <= 5000;);

}

},25);


  • 4关注人数
  • 624浏览人数
  • 最后回答于:2020-7-2 16:35
    请选择关闭问题的原因
    确定 取消
    返回顶部