Jquery滚动/在文本框中

时间:2011-02-16 11:23:25

标签: javascript jquery

我正在使用一个工作正常的滚动框* 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内容。它从顶部到底部奇怪地移动,并且不能正确向下滚动。

我无法理解为什么不能正常工作。

1 个答案:

答案 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(...);