编辑:请参阅下面的答案,z-index的最新版本和内容为http://jsfiddle.net/66MBH/6/
滚动回到顶部有一个小错误,第一个侧边栏在到达其起始位置后不会停止,快速修复小提琴是设置.fixed顶部:XXpx;超过标题的高度。
感谢您的帮助,Fbynite!
我有一个我需要修复的jquery脚本,
我对javascript知之甚少,一个人为我做了这个,
它按照我想要的方式执行,当它滚动时开始跟随,然后在点击下一个侧边栏时停止,然后在您继续滚动时下一个栏开始跟随。
但侧边栏的运动非常跳跃和毛刺,我不知道该怎么做。
我正在寻找的一个例子是你可以在http://9gag.com的每个帖子中看到的小栏,其中包含标题,评级和twitter / facebook分享。
如果你对jquery很好,请拍一下..
我有这个小提琴来清除它:jsfiddle.net/7KcJb/4
(与9gag矿井上的那个相同,只是浮动并移出了一些边缘左边的柱子:-XXpx;)
$(document).ready(function () {
$(window).scroll(function (event) {
var y = $(this).scrollTop();
$('.socialbookmarks2').each(function(){
var top = $(this).offset().top - parseFloat($(this).css('marginTop').replace(/auto/, 0));
var bottom = (top + $(this).parent().height());
if (y >= top && y < bottom) {
$(this).addClass('fixed');
} else {
$(this).removeClass('fixed');
}
});
});
});
如果您可以修复脚本或者使用另一个可以顺利运行的脚本,我会非常高兴!
我对动画运动或其他效果持开放态度,只要它像现在一样平滑而不是跳跃
谢谢!
答案 0 :(得分:2)
它出现故障/跳跃的原因是因为每次滚动时都会删除该类。试试这个:
$('.socialbookmarks2').each(function(){
var top = $(this).offset().top - parseFloat($(this).css('marginTop').replace(/auto/, 0));
var bottom = (top + $(this).parent().height());
if (y >= top && y < bottom) {
$('.socialbookmarks2').removeClass('fixed');
$(this).addClass('fixed');
}
});
您还可以更改y值中的比较,以使div转换更加无缝。但我会让你玩这个。这是一个小提琴,http://jsfiddle.net/66MBH/2/。
示例:
if ( (y+30) >= top && y < bottom)
答案 1 :(得分:0)
您可以使用var elm=$(this);
进行首次查找,并在同一范围内更改$(this)
之后的所有var top = elm.offset().top - parseFloat(elm.css(...
,以使$(this)
变得更顺畅
到目前为止,您的代码必须重新引导并重新标记{{1}}是什么