我有一个主干视图页面(或窗口),它可以有很长的内容,这使得垂直滚动成为必要。发生这种情况时,视口会自动定位在窗口的中间而不是顶部。无论页面是否有长内容,我都希望它在页面顶部打开。我尝试了几种 scrollTo 变体,但似乎都没有。请注意,我使用的是 Backbone js,并且是用 Coffeescript 编写的。这里是:
:coffeescript
  $ ->
    model = new Backbone.Model
      forcastTickInterval: #{xx_interval(@type_well.num_rows)}
      typeWell: #{@type_well.to_json}
      x_labels: #{price_array}
      disc_rate_array: #{disc_rate_array}
      disc_pv10_array: #{disc_pv10_array}
    view = new VGStream.Views.TypeWells.Show(
      model: model
    ).render()
    VGStream.App.router = new VGStream.Routers.Tabs()
    VGStream.App.currentView = view
    Backbone.history.start()
选项卡路由器也相当简单:
class VGStream.Routers.Tabs extends Backbone.Router
  routes:
    '' : 'index'
    ':name' : 'viewTab'
  index: ->
    firstTab = $('.tab-nav li a').first()
    firstTab.scrollTop(0)
    if firstTab
      @navigate firstTab.attr('href'),
        trigger: true
  viewTab: (name) ->
    selectedTab = $(".tab-nav li a[href='##{name}']").parent()
    unless selectedTab.hasClass 'active'
      $('.tab-nav li.active').removeClass 'active'
      selectedTab.addClass 'active'
      $('.tab').hide()
      $(".tab##{name}").show()
      if VGStream.App.currentView? && VGStream.App.currentView[name]?()
        VGStream.App.currentView[name]()
有趣的是,当我打开 Chrome 控制台并输入以下命令时:
this.scrollTo(0)
窗口正确地转到页面顶部。
我不知道如何解决这个问题。
在此先感谢您的帮助。