Javascript 我怎么可以添加一个延迟滚动后,每个窗帘在中间相遇? 我希望暂停动画大约20px的滚动后,每个窗帘在中间相遇。这是我的沙箱:

Javascript 我怎么可以添加一个延迟滚动后,每个窗帘在中间相遇? 我希望暂停动画大约20px的滚动后,每个窗帘在中间相遇。这是我的沙箱:,javascript,jquery,html,custom-scrolling,Javascript,Jquery,Html,Custom Scrolling,jQuery: HTML: P>是否有办法使窗帘暂停大约20px的滚动,使窗帘在两个块在中间相遇后不立即褪色? 如果你接受基于库的答案,你就有很好的解决方案: skrollr 您可以看到教程,其中解释了如何使用此库来实现您的目标: 我吃西红柿 其主要思想是:创建高度为100%+20px的页面,并使用js转换内容位置。当你的卷轴在50%-10px和50%+10px之间时,你可以停止转换主要内容 这里是一个定时动画转发器的示例。它等待所有动画完成,然后在超时后重复这些动画。不是100%确定这是您

jQuery:

HTML:


<> P>是否有办法使窗帘暂停大约20px的滚动,使窗帘在两个块在中间相遇后不立即褪色?

如果你接受基于库的答案,你就有很好的解决方案:

skrollr

您可以看到教程,其中解释了如何使用此库来实现您的目标:

我吃西红柿



其主要思想是:创建高度为100%+20px的页面,并使用js转换内容位置。当你的卷轴在50%-10px和50%+10px之间时,你可以停止转换主要内容

这里是一个定时动画转发器的示例。它等待所有动画完成,然后在超时后重复这些动画。不是100%确定这是您的愿望,但希望您可以从中构建:(注意,我没有测试这段代码,但它应该可以工作。需要jQuery作为延迟代码

function pullCurtains(){
    $.when(
        $('body,html').animate({'scrollTop': target.offset().top}, 500, function(){ animating = false; }).promise(),
        $( '#mything-2' ).animate( { marginLeft : "-100px" }, 500 ).promise(),
        $( '#mything-3' ).animate( { width: 0 }, 1000 ).promise()
    ).done( function(){
        console.log( "All animations complete." );
        setTimeout(function() {
            // trigger new one in 2000 ms
            $(document).trigger('curtian');
        }, 2000);
    });
};
$(document).on('curtian',function(){
    pullCurtains();
});
// do first one
$(document).trigger('curtian');

如何使用一个页面,而不是我正在寻找的东西。我试图暂停在一个正常的滚动页面中间滚动。@ LukeSmith窗帘?你的意思是在每个部分结束之后?“DeYY399”,在每个幕后,当你向下滚动的时候,中间有一个地方。(回调中有一个计时器,用于延迟和一些参考。听起来不错,但不确定这将如何转化为我的js代码。你能演示一下这是如何工作的吗?@LukeSmith我可以在JSFIDLE中提供一个小片段。我担心你的代码太复杂,无法堆叠溢出好的问题标准。你应该隔离问题和焦点请记住:问题和答案不仅针对您,也针对其他人。因此,并非每个人都有时间了解所提供源代码的详细信息。这很有意义,感谢您的解释。我在这里相对较新,所以我会边走边学习。:)如果你能提供一个片段那就太好了。对此有什么想法吗?这里是最后的努力。如果你不想发送一个小片段,我理解。:@LukeSmith我明天可以做这个