jQuery滚动DIV是跳跃和定位错误
jQuery scrolling DIV is jumpy and positioned incorrectly
不久前,我问过如何设置一个div,它可以与页面的其余部分滚动。帖子可以在这里找到。
我已经设置好了,使用以下代码:
JS。。
jQuery(function ($) {
var el = $('#sidebar'),
pos = el.position().top;
alert(pos);
$(window).scroll(function() {
el.toggleClass('fixed', $(this).scrollTop() >= pos);
});
});
CSS。。
/* profile sidebar */
#sidebar>div{ width: 300px; margin-top: 10px; }
#sidebar.fixed>div{position:fixed;top:0}
该页面的副本可在此处找到。警报只是一些调试。
问题是,当你滚动一小部分时,#sidebar
突然出现在页面的最顶部。此外,有时当你进一步向下滚动时,侧边栏会出现——有时不会。
你知道是什么导致了这种看似随机的功能吗?
我仍在试图弄清楚为什么它在jsfiddle示例中首先有效,但无论如何,我知道如何修复它:
$(window).scroll(function() {
if($(this).scrollTop() >= pos){
el.addClass('fixed');
}else{
el.removeClass('fixed');
}
});
我通过取消绑定您的事件并用此代码替换它来测试这一点。它似乎运行良好。
我不明白为什么它在这个例子中有效:如果你已经滚动了足够多,toggleClass应该不断添加和删除"fixed",因为条件是true(这里的true表示是否切换)。固定类的不断添加和移除导致了跳跃行为
你可以在你的页面上看到这一点:打开一些开发工具(firegubg或Chrome),观察你的侧边栏元素发生了什么。
[更新]
事实上,我看错了文件。True表示应该添加类(不过我认为文档不是很清楚)。因此我唯一能解释这一点的方法是,如果@dunc运行的是jQuery v1.2,而开关被完全忽略了。。。
相关文章:
- Jquery菜单操作不稳定,定位不正确,存在一般错误
- 如何定位DOM怪物错误
- 按钮创建无法定位功能代码错误
- 使用此 javascript 在 IE7 中收到“对象不支持此属性或方法”错误,以及选项卡未正确定位的问题
- jQuery 定位错误的元素
- 桌面网络工具包(safari / chrome)中具有绝对定位元素的奇怪渲染错误
- 滚动时引导弹出框未连接到按钮/定位错误
- 捕捉 svg 动态:定位错误
- 地理定位功能错误不起作用
- 谷歌地图和jQuery错误消息-地理定位
- jQuery滚动DIV是跳跃和定位错误
- 如何解决错误错误:无法定位视图“”;错误”;
- Fabric.js:旋转组时的定位错误
- 标记定位错误,某些选项被禁用
- Cordova/Phonegap地理定位插件管理错误
- 获取光标位置的函数似乎与输入验证的定位错误
- 为什么HTML5地理定位在不同的浏览器中有不一致的错误行为?
- Jquery定位器在重新加载后查找错误的页面
- JQuery 错误在绝对定位元素上同时淡入/淡出
- IE7模式对话框-定位错误