滚动到底重置后回到顶部,停留30秒,再继续滚动。

决策报表跑马灯效果。滚动到底,重置后回到顶部,停留30秒,再继续滚动。

请问关键点 停留30秒 怎么做?目前的JS如下,最好能直接加在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) {

                $scroll[0].scrollTop = 0;

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

            } else {

                old = currentpos;

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

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

            }

        }

    }, 25);

    //以25ms的频率执行

}, 500);


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

这个地方改成试试,到达底部,停止30面执行返回顶部,在“$scroll[0].scrollTop=0;”前面加for(var t = Date.now(); Date.now() - t <= 30000;)

30000表示30秒,可以自定义


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

$scroll[0].scrollTop=0;



123.png

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