我知道这个问题是网络开发的一个典型问题 但是我已经坚持了这个问题将近3个小时 如果你可以帮助我或给我提示,我很感激。
我想做什么
用户点击链接后,在下一个窗口自动滚动到特定标签。
序列
1.用户在TaskWindow上
2.用户在TaskWindow上推送一个指向HistoryWindow的链接
3.应用程序显示HistoryWindow并自动滚动到特定标签。
环境
ruby 2.1.1p76 / Rails 4.2.0 / CoffeeScript / Javascript
我尝试了什么
我试过两种方法。
1:使用assets / javascripts / histories.coffee
资产/ Javascript角/ histories.coffee
ready = ->
scrollToElement($('.history-group-<%= @group_histories.count-1 %>'));
scrollToElement = (ele) ->
$(window).scrollTop(ele.offset().top).scrollLeft(ele.offset().left)
问题
<%= @group_histories.count-1 %>
处的错误(但如果我写了文字变量,它就可以了。)2:使用history / index.html.erb
histories / index.html.erb
....
<%= javascript_tag do %>
function scrollToElement(ele) {
$(window).scrollTop(ele.offset().top).scrollLeft(ele.offset().left);
}
scrollToElement($('.history-group-<%= @group_histories.count-1 %>'));
<% end %>
问题
问题
如何更好地实现这个方法?
答案 0 :(得分:2)
您正在寻找的是锚链接:
<a href="/foo#bar">Foo</a>
当浏览器加载bar
时,这会自动滚动到ID属性为/foo
的元素。
如果没有匹配元素,浏览器将滚动到顶部(无论如何都是默认值)。
使用Rails路由助手创建锚点:
link_to("Index", foos_path(anchor: 'bar'))