javascript - 原生js如何实现jQuery.animate中的scrollTop方法
天蓬老师
天蓬老师 2017-04-11 09:54:17
[JavaScript讨论组]

网上找不到一个好的介绍来实现,

$('html, body').animate({
  scrollTop: 800
}, 1000)

怎么控制这个scrollTop的 时间呢?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(3)
大家讲道理

你要做的不是控制时间,而是控制步长,比如800px,800ms,就是800ms内移动800px,如果是1600px,那就800ms内移动1600px

怪我咯
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<style>
    html{
        height : 200%;
    }
    #position{
        width : 100px;
        height : 100px;
        position: absolute;
        top : 100%;
        left: 80%;
        background: red;
    }
</style>
<body >
    <p id="position"></p>
</body>
<script>
    (()=>{

        let pos = document.getElementById('position');
        pos.onclick = ()=>{
            let curr_top = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop;
            let time_id = setInterval(()=>{
                curr_top -= 10;
                document.body.scollTop = curr_top;
                document.documentElement.scrollTop = curr_top;
                if(curr_top <= 0){
                    clearInterval(time_id);
                }
            } , 100);

        }
    })()
    
</script>
</html>
天蓬老师

666,竟然用ES6

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号