微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 如何在滚动上浮动一个元素,有延迟?

我有以下div漂浮,但我希望左面板内的绿色元素延迟大约半秒.

有谁知道我怎么能这样做?

https://jsfiddle.net/eoopvgmc/22/

这是将元素浮动在滚动上的代码

$(document).ready(function() {
        var offset = $('.ads').offset().top, top;
        $(document).on('scroll', function() {
            top = $(window).scrollTop() < offset ? '0' : $(window).scrollTop() - offset + 'px';
            $('.ads').css({
                'top': top
            });
        })
    }); 

解决方法:

我设法通过向元素添加一些过渡效果并使用一点延迟来获得类似于您所描述的工作,您应该能够调整超时,margin-top和transition值以获得您想要的内容

$(document).ready(function() {
    var offset = $('.ads').offset().top, top;
    $(document).on('scroll', function() {
        top = $(window).scrollTop() < offset ? '0' : $(window).scrollTop() - offset + 'px';
        $('.ads .element').css({
            'transition': 'none',
            'margin-top': '-60px'
        });
        $('.ads').css({
            'top': top
        });
        setTimeout(function() {
            $('.ads .element').css({
                'transition': 'margin-top 3s',
                'margin-top': '0'
            });
        });
    })
});

小提琴:https://jsfiddle.net/yckszc16/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐