我正在使用一个工作正常的滚动框* see here *,只要我在其下面没有大量内容,例如:
<article class="content">
<ul>
<li>
<a title="Video" href=".php">
<img alt="" src=".jpg" width="200" height="124"/>
<span>video</span>
<strong>Motion Graphics</strong>
</a>
</li>
<li>
<a title="Video" href=".php">
<img alt="" src=".jpg" width="200" height="124"/>
<span>video</span>
<strong>Motion Graphics</strong>
</a>
</li>
<li>
<a title="Video" href=".php">
<img alt="" src=".jpg" width="200" height="124"/>
<span>video</span>
<strong>Motion Graphics</strong>
</a>
</li>
问题 当我有一堆内容时,滚动框的行为不正常。它表现为第一个Scrolling babe scrolling内容。它从顶部到底部奇怪地移动,并且不能正确向下滚动。
我无法理解为什么不能正常工作。
答案 0 :(得分:1)
我猜这里,但你的意思是这个问题只发生在Opera吗?如果是这样,那就是因为这一行:
$('html, body').animate(...);
问题是Opera会首先为html制作动画,然后为正文设置动画。我发现elegant solution here基本上提供了这段代码:
var scrollElement = 'html, body';
$('html, body').each(function(){
var initScrollTop = $(this).attr('scrollTop');
$(this).attr('scrollTop', initScrollTop + 1);
if ($(this).attr('scrollTop') === initScrollTop + 1) {
scrollElement = this.nodeName.toLowerCase();
$(this).attr('scrollTop', initScrollTop);
return false;
}
});
scrollEl = $(scrollElement);
// further down, when you animate
scrollEl.animate(...);