首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当滚动时使元素粘在顶部

当滚动时使元素粘在顶部
EN

Stack Overflow用户
提问于 2015-06-24 15:09:21
回答 2查看 175关注 0票数 1

我编写了一个函数,使div元素在滚动时保持在顶部。

当它写成这样时,它就会工作(‘#粘滞-锚-for-social’是用来检测元素的移动距离,‘#社会化媒体’是元素棒):

代码语言:javascript
复制
function sticky_socialmedia() {
    var window_top = $(window).scrollTop();
    var social_top = $('#sticky-anchor-for-social').offset().top - 88;
    if (window_top >= social_top) {
       $('#social-media').addClass('stick-social');
    } else {
       $('#social-media').removeClass('stick-social');
    }
}

$(window).scroll(sticky_socialmedia);
sticky_socialmedia();

但是当我这样写它的时候,它不起作用:

代码语言:javascript
复制
function stickyWhenScroll(anchor, sticky) {
    var window_top = $(window).scrollTop();
    var filter_top = $(anchor).offset().top - 88;
    if (window_top >= filter_top) {
       $(sticky).addClass('stick-filter');
    } else {
       $(sticky).removeClass('stick-filter');
    }
 }

 $(window).scroll(stickyWhenScroll);
 stickyWhenScroll('#sticky-anchor-for-social','#social-media');

有什么可能出错?非常感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-06-24 15:22:33

在添加事件时,需要将参数发送到函数,可以使用bind完成这一任务。

代码语言:javascript
复制
$(window).bind('scroll', {
    anchor: '#sticky-anchor-for-social', 
    sticky: '#social-media'
}, stickyWhenScroll).trigger('scroll');

通过传递trigger('scroll'),您可以立即触发该函数。

在您的函数中,您可以通过添加event.data来检索它们

代码语言:javascript
复制
function stickyWhenScroll(event) {
    var data = event.data;
    var anchor = data.anchor;
    var sticky = data.sticky;
    ...
}

小提琴

票数 1
EN

Stack Overflow用户

发布于 2015-06-24 15:29:36

因为在第二个片段中,滚动事件处理程序没有收到任何对角。您可以同时传递参数(加载和滚动),或者将其声明为全局变量,并在函数中使用它们。

代码语言:javascript
复制
(function stickyWhenScroll(anchor, sticky) {
    var window_top = $(window).scrollTop();
    var filter_top = $(anchor).offset().top - 88;
    if (window_top >= filter_top) {
        $(sticky).addClass('stick-filter');
    } else {
        $(sticky).removeClass('stick-filter');
    }
}('#sticky-anchor-for-social', '#social-media'));

$(window).scroll(function() {
    stickyWhenScroll('#sticky-anchor-for-social','#social-media');
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31030267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档