滚动到特定代码

时间:2015-11-09 08:12:26

标签: javascript jquery ruby-on-rails ruby coffeescript

我知道这个问题是网络开发的一个典型问题 但是我已经坚持了这个问题将近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 %>

问题

  • 不行。没有任何事情发生。

问题
如何更好地实现这个方法?

1 个答案:

答案 0 :(得分:2)

您正在寻找的是锚链接:

<a href="/foo#bar">Foo</a>

当浏览器加载bar时,这会自动滚动到ID属性为/foo的元素。

如果没有匹配元素,浏览器将滚动到顶部(无论如何都是默认值)。

使用Rails路由助手创建锚点:

link_to("Index", foos_path(anchor: 'bar'))