javascript - 滚动超过元素的 50% 时如何粘贴 div?

标签 javascript jquery css html sticky

这可能是一个简单的问题,但请帮忙! 我已经使用下面的代码实现了一个粘性 div 但我需要知道如何更改 div 被“卡住”的位置?

我想要的是让我的 div 仅在 50% 的内容滚动到顶部时卡住。目前它到达顶部时会卡住,但我希望其中的 50% 在卡住之前继续滚动到一半(大致)。

$(document).ready(function() {
    var s = $("#picture1");
    var pos = s.position();                    
    $(window).scroll(function() {
        var windowpos = $(window).scrollTop();
        //$("#header_left").html("Distance from top:" + pos.top + "<br />Scroll position: " + windowpos);
        if (windowpos >= pos.top) {
            s.addClass("stick");
        } else {
            s.removeClass("stick"); 
        }
        if (windowpos >= pos.top) { s.addClass("stick"); $("body").css("margin-top", s.height()); } else { s.removeClass("stick"); $("body").css("margin-top", 0); }

    });
});

和CSS

.stick {
    position:fixed;
    top:0px;
    /*_top: expression( ie6 = (document.documentElement.scrollTop + "px") );*/
    z-index: 1000;
}

最佳答案

windowpos >= pos.top 更改为 windowpos >= (s.height()/2) + pos.top

编辑

http://jsfiddle.net/BVK2q/

关于javascript - 滚动超过元素的 50% 时如何粘贴 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22132279/

相关文章:

javascript - "Invalid left-hand side in assignment"样式属性赋值

javascript - JQuery Mobile 检测到是否有互联网连接

javascript - Node.js 客户端 session 不创建 req.session

jquery - Div 在 jQuery 显示或隐藏之前闪烁

html - 修复了可滚动内容上方的模态页脚

javascript - 如何在谷歌图表中使用日期和时间

javascript - 将事件处理程序添加到动态添加的元素

javascript - 有没有办法删除 jQuery 中的所有命名空间绑定(bind)?

java - 我怎样才能在一个 OSGi 包中使用来自另一个 OSGi 包的 **CSS** 资源文件

html - 在 css 中定义类的正确方法