首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery:停止浏览器滚动的事件更新超过折叠?

jQuery:停止浏览器滚动的事件更新超过折叠?
EN

Stack Overflow用户
提问于 2010-03-15 16:21:24
回答 2查看 933关注 0票数 1

我有几个链接在我的页面底部,更新内容在我的页面顶部(超过一个视口之外)。下面是更新的要点:

代码语言:javascript
运行
复制
$('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操作的链接,它本身位于彩色盒

代码语言:javascript
运行
复制
$('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本身的原因。

如果你需要更多的信息,告诉我!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-03-15 20:56:21

我想我想出来了..。

div#private-photodiv#public-photo一起漂浮。页面上的下一个元素是#galleries,它没有清除任何浮点数。我认为,通过更新其中一个浮动div,浏览器必须刷新#galleries的顶部对齐,这就是为什么它一直滚动到更新部分的底部。

我把clear: both;添加到#galleries上,似乎目前为止还在工作.我还没有看到错误的卷轴,但有时似乎是零星的,所以我希望.

谢谢大家的帮助。

票数 0
EN

Stack Overflow用户

发布于 2010-03-15 16:35:59

#private-photo是什么样的元素?

如果没有更多的信息,很难判断,但我的猜测是,在函数结束时返回false可能有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2448669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档