jquery从顶部滚动到一个px计数,然后设置一个div以从顶部固定滚动的其余部分

发布于 2024-10-10 19:13:31 字数 313 浏览 8 评论 0原文

当我滚动到页面下方的某个点(距页面顶部一定数量的像素)时,我希望更改 div 的 css。

在页面加载时,我将有一个静态定位的 div。当我开始向下滚动页面并从顶部点击一个点(出于演示目的,例如 100px)时,我想将该静态 div 更改为固定的,例如距离顶部 20px。这可以通过 jquery 的 css() 属性来完成。这将允许它在页面下方一直保持固定的 20px。

当我达到 100px 标记时,我可以使用什么 jquery 属性来知道。我希望一旦有人回到顶部,它也能恢复,以便 div 被放回到页面加载时的位置,而不是距离顶部 20px。

有什么想法吗?

I am looking to change a div's css when i scroll to a certain point down the page, a certain amount of pixels from the top of the page.

On page load i would have a div positioned statically. Once I started to scroll down the page and i hit a point from the top (say 100px for demo purposes) i want to change that static div to become fixed like 20px from the top. Which would be done via the css() property of jquery. THis would allow it to stay at that fixed 20px all the way down the page.

What jquery property can i use to know when i hit that 100px mark. I want this to also revert once someone gets back to the top so that the div is put back to where it was when the page loaded and not 20px from the top.

Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

草莓味的萝莉 2024-10-17 19:13:31

您可以使用 scroll() 事件 来运行代码,并且 < a href="http://api.jquery.com/scrolltop" rel="noreferrer">scrollTop() 方法 查看您所在的位置。

这是一个演示: http://jsfiddle.net/EahRx/

(我使用了您提供的值,因此存在跳转。我确信它在您的实际页面中看起来会更好。)

var fixed = false;

$(document).scroll(function() {
    if( $(this).scrollTop() >= 100 ) {
        if( !fixed ) {
            fixed = true;
            $('#myDiv').css({position:'fixed',top:20}); // Or set top:20px; in CSS
        }                                           // It won't matter when static
    } else {
        if( fixed ) {
            fixed = false;
            $('#myDiv').css({position:'static'});
        }
    }
});

fixed 变量会阻止 .css() 代码运行次数超过其需要的次数。

You could use the scroll() event to run the code, and the scrollTop() method to see where you are.

Here's a demo: http://jsfiddle.net/EahRx/

(I used the values you provided, so there's a jump. I'm sure it will look better in your actual page.)

var fixed = false;

$(document).scroll(function() {
    if( $(this).scrollTop() >= 100 ) {
        if( !fixed ) {
            fixed = true;
            $('#myDiv').css({position:'fixed',top:20}); // Or set top:20px; in CSS
        }                                           // It won't matter when static
    } else {
        if( fixed ) {
            fixed = false;
            $('#myDiv').css({position:'static'});
        }
    }
});

The fixed variable prevents the .css() code from running more times than it needs to.

余生共白头 2024-10-17 19:13:31

尝试使用scrollTop:

$(window).scroll(function(){
    if  ($(window).scrollTop() >= 100){
        //CSS changes go here
    }
});

Try using scrollTop:

$(window).scroll(function(){
    if  ($(window).scrollTop() >= 100){
        //CSS changes go here
    }
});
归属感 2024-10-17 19:13:31

这是一个可爱的 jQuery 插件,我发现它可以很好地实现这一点,并为您提供一些有用的附加功能,例如设置偏移量以及在“附加”和“分离”模式之间更改 css。

http://code.google.com/p/sticky-panel/

Here's a lovely jQuery plug-in that I found that does the trick nicely and gives you some useful additional features, such as setting the offset and changing the css between "attached" and "detached" mode.

http://code.google.com/p/sticky-panel/

执笏见 2024-10-17 19:13:31

我刚刚找到了这个。我觉得这真的很有趣;我喜欢它。

I just found this. I think this is really interesting; I liked it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文