当我到达某个点时进行div滚动

当我到达某个滚动点时,我想做一个div(按钮)滚动。我也想在页面上的其他元素中添加类。它们不工作。这是我用于滚动的代码,但我不很明白。请帮帮我

$(window).load(function () { var nav = get_nav(); if (!(nav.is_msie && nav.ver = start_offset) { bp.addClass('flyingbuy'); } else { pt.css('top', 'auto'); } if (window.content_center != true || window.c != false) { window.buydeal_forpresent = false; } $(window).scroll(function () { var tmp = $('#tag_container').css('position'); ur_w_offset = $(window).scrollTop(); if (cur_w_offset >= start_offset) { bp.addClass('flyingbuy'); $('#tag_container').css('height', 'auto'); $('#tag_container_bialo').slideDown('slow'); } else { bp.removeClass('flyingbuy'); $('#tag_container').css(({ position: "fixed", height: "101px" })); $('#tag_container_bialo').slideUp('slow'); } if (!window.buydeal_forpresent) { var nvp_panel = $('#right_content'); var nvp_pricetag = $('#butoni'); var bialo_height = $('#tag_container_bialo').height() + 20; var offset_top = nvp_pricetag.offset().top - nvp_panel.offset().top + 16; if (tmp == 'fixed') { $('#gift').css('position', 'fixed'); var left = $('#butoni').offset().left + 223 - 18; $('#gift').css('top', 16 + bialo_height + 'px'); $('#gift').css('left', left + 'px'); } else { $('#gift').css('position', 'absolute'); $('#gift').css('top', offset_top); $('#gift').css('left', '205px'); $('#gift').animate({ top: offset_top + bialo_height }, 400); } } }); } }); 

我现在有一个问题。我一直在这里工作: JsFiddle

我不希望文本div以这种方式滚动。当页面到达按钮的级别时,我希望txt显示,向下滑动并与按钮一起移动。但是,文本需要在按钮之前.I不知道为什么它在向下滑动时会增长。向上滑动部分是可以的。


好的,我发现了成长的部分。我没有指定高度。 我真的不知道如何让txt出现在按钮之前并一起滑动。就像这样:

文字按钮

我不是100%清楚你要实现的目标,而且你的post中似乎有很多代码与你的问题没有直接关系。 这是一段更简单的代码,似乎可以做你想要的(如果我正确地解释你的目标):

JSFiddle示例

 $(function(){ var btn = $('.button'); var btnPosTop = btn.offset().top; var win = $(window); win.scroll(function(e){ var scrollTop = win.scrollTop(); if(scrollTop >= btnPosTop){ //we've reached the button btn.css({position:'fixed',top:0,marginTop:0}); }else if(btn.css('position') === 'fixed'){ //if we scroll back up past the button's original position, and the button had previously been changed to its fixed position, we change it back btn.css({position:'',top:'',marginTop:'100px'}); } }); }); 

当页面加载时,我们得到按钮顶部边缘相对于文档的原始位置。 然后,我们将窗口的scroll事件绑定到代码,该代码检查用户滚动的win.scrollTop() )。 它将该值与按钮的原始位置进行比较。 如果发现它大于或等于按钮的原始位置,则意味着按钮应该通过将其CSS position更改为fixed来开始向我们滚动。 当用户向上滚动时, else if部分将按钮返回到其原始位置。

试试这个

 $(window).scroll(function () { var top = $(window).scrollTop(); if(top>879) { $("div").addClass('yourclass'); } }); 

这里879分配了滚动点