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 に答える