2

我是一个新手,并且已经实现了我在别处得到的一些 Javascript,它工作得很好,让我的 div 与页面一起滚动:

<script type="text/javascript">
<!-- // sick
var scroll = 0;
var marginTop = 0;
$(document).ready(function() {
    $(window).scroll(function() {
        marginTop = ($(document).scrollTop() - scroll) + marginTop;
        scroll = $(document).scrollTop();
        $("#scrollregister").animate({
            "marginTop": marginTop + "px"
        }, {
            duration: 1000,
            queue: false
        });
    });
});
// -->
</script>

我的问题是我想延迟这个脚本的执行(不仅仅是增加执行所需的秒数,而是延迟它开始的时间)。我知道我可以使用 setTimeout 来执行此操作,并且我已经用谷歌搜索并搜索了该站点,以查看是否可以通过使用 setTimeout 查看其他代码来弄清楚如何将 setTimeout 添加到上述代码中。然而,尽管我进行了最好的尝试和错误,但我未能正确实施它。我希望你能告诉我如何实现它。

4

2 回答 2

4

试试这个代码

<script type="text/javascript">

var scroll = 0;
var marginTop = 0;
$(document).ready(function() {
    $(window).scroll(function() {
        marginTop = ($(document).scrollTop() - scroll) + marginTop;
        scroll = $(document).scrollTop();
        window.setTimeout(scrollDiv, 2000);        
    });
    function scrollDiv()
    {
        $("#scrollregister").animate({
            "marginTop": marginTop + "px"
        }, {
            duration: 1000,
            queue: false
        });
    }
});
</script>
于 2013-06-19T11:48:14.503 回答
0

对于延迟开始 3 秒和执行持续时间 4 秒。

<script type="text/javascript">
<!-- // sick
var scroll = 0;
var marginTop = 0;
$(document).ready(function() {
$(window).scroll(function() {
setTimeout(function(){
        marginTop = ($(document).scrollTop() - scroll) + marginTop;
        scroll = $(document).scrollTop();
        $("#scrollregister").animate({
            "marginTop": marginTop + "px"
        }, {
            duration: 4000,
            queue: false
        });
    },3000);
})}
);
// -->
</script>
于 2013-06-19T12:02:04.583 回答