我有几个链接在我的页面底部,更新内容在我的页面顶部(超过一个视口之外)。下面是更新的要点:
$('div#private-photo div').fadeOut(function() {
$(this).html('<%= escape_javascript(image_tag current_user.private_photo.image.url(:profile)) %>');
}).fadeIn(); 基本上,它只是在逐渐淡出旧的内容,在新的内容中逐渐褪色。
我的问题是,当这种情况发生时,浏览器窗口会自动向上滚动,使更新内容(,#private-photo div)的底部出现在浏览器视图的顶部。
我不希望这种事发生。我想要更新内容(仍然是淡入淡出),但不需要浏览器视图重新调整其焦点。我想保留动画,因为如果用户有足够大的屏幕,或者他们使用的链接靠近页面顶部,我仍然希望他们看到动画。
对于如何防止浏览器滚动,有什么想法吗?如果没有,有什么解决办法的建议吗?
FYI,我在Safari 4,Chrome (用于Mac)和Firefox 3.5中也有同样的问题。
编辑:
下面是调用update操作的链接,它本身位于彩色盒中
$('a.edit-photo').colorbox({
title: function() { return 'Edit Photo in ' + $(this).attr('rel'); },
overlayClose: false,
onComplete: function() {
$('form#edit-photo-modal').submit(function(e) {
$('input#photo_submit').after('<span id="saving">Saving...</span>');
e.preventDefault();
$.post($(this).attr('action'), $(this).serialize(), function() {
$('form#edit-photo-modal span#saving').text('Saved!');
}, "script");
});
}
});lightbox打开,呈现通过AJAX请求获取的表单,然后(在submit上)触发上述更新操作。
在早期的设计修订版中,我在Colorbox之外有这些链接,它们也显示了同样的问题,所以我已经排除了Colorbox本身的原因。
如果你需要更多的信息,告诉我!
发布于 2010-03-15 20:56:21
我想我想出来了..。
div#private-photo和div#public-photo一起漂浮。页面上的下一个元素是#galleries,它没有清除任何浮点数。我认为,通过更新其中一个浮动div,浏览器必须刷新#galleries的顶部对齐,这就是为什么它一直滚动到更新部分的底部。
我把clear: both;添加到#galleries上,似乎目前为止还在工作.我还没有看到错误的卷轴,但有时似乎是零星的,所以我希望.
谢谢大家的帮助。
发布于 2010-03-15 16:35:59
#private-photo是什么样的元素?
如果没有更多的信息,很难判断,但我的猜测是,在函数结束时返回false可能有效。
https://stackoverflow.com/questions/2448669
复制相似问题