我有一个主干视图页面(或窗口),它可以有很长的内容,这使得垂直滚动成为必要。发生这种情况时,视口会自动定位在窗口的中间而不是顶部。无论页面是否有长内容,我都希望它在页面顶部打开。我尝试了几种 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)
窗口正确地转到页面顶部。
我不知道如何解决这个问题。
在此先感谢您的帮助。