我知道这个问题是 Web 开发的典型问题。
但我被这个问题困扰了将近3个小时。
如果您可以帮助我或给我提示,我很感激。
我想做什么
用户单击链接后,自动滚动到下一个窗口上的特定标签。
序列
1. 用户位于TaskWindow
2. 用户在TaskWindow上推送HistoryWindow的链接
3. 应用程序显示历史窗口并自动滚动到特定标签。
环境
ruby 2.1.1p76/Rails 4.2.0/CoffeeScript/Javascript
我尝试过的
我尝试了两种方法。
1:使用assets/javascripts/histories.coffee
assets/javascripts/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 %>
(但是如果我写文字变量,它就可以工作。) - 其他 Controller 加载此咖啡文件。
2:使用history/index.html.erb
history/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 %>
问题
- 不工作。什么也没发生。
问题
如何更好地实现这一点?
最佳答案
您正在寻找的是 anchor 链接:
<a href="/foo#bar">Foo</a>
当浏览器加载 /foo
时,这将自动滚动到具有 id 属性 bar
的元素。
如果没有匹配的元素,浏览器将滚动到顶部(无论如何这是默认的)。
使用 Rails 路由助手创建 anchor :
link_to("Index", foos_path(anchor: 'bar'))
关于javascript - 滚动到特定标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33604854/