【问题标题】:What is the best way of scrolling the browser window for expanding elements?滚动浏览器窗口以扩展元素的最佳方式是什么?
【发布时间】:2008-10-29 04:10:49
【问题描述】:

我想要做的是在我展开页面中的元素时向下滚动窗口。

我想要达到的效果就像 Stack Overflow cmets。如果它扩展到页面之外,它会向下滚动以适应窗口中的所有 cmets。

最好的方法是什么?

编辑:我正在使用 JQuery。

【问题讨论】:

标签: javascript window scroll


【解决方案1】:

这个 jQuery 插件对我很有效: http://demos.flesler.com/jquery/scrollTo/

【讨论】:

    【解决方案2】:

    如果你有使用Prototype的优势,你可以使用$(element).scrollTo()

    否则,大体思路是计算元素的累积偏移量,然后相应地设置window.scrollTop(和window.scrollLeft)。

    【讨论】:

      【解决方案3】:

      你可以用Scriptaculous(建立在Prototype之上)很好地做到这一点:

      new Effect.ScrollTo('someDiv',{...some parameters...})
      

      它为您提供了比单独使用 Prototype 更好的控制(开始前的延迟、持续时间和回调事件(例如 afterFinish),允许您触发其他效果或您选择的任何内容。您可以使其平滑流畅地滚动,因此页面不会不要突然跳。

      【讨论】:

        【解决方案4】:

        如果您知道源代码中的下一个元素是什么,您实际上可以直接跳转到该元素 (location.href="#...")。这将使用浏览器的原生“滚动”而不使用任何库。

        【讨论】:

          【解决方案5】:

          您可以使用此代码,虽然没问题,但并不完美。 根据 blonkm 的建议

          function scrollTo( Selector ){
            $(Selector).before("<a name='scroll' id='scroll'></a>");
            document.location.hash = 'scroll';
            $('scroll').remove();
          }
          

          这应该可行。 需要 jQuery,但您已经说过您正在使用它。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-03-31
            • 1970-01-01
            • 2018-02-05
            • 2018-08-31
            • 2012-10-05
            • 2011-02-26
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多