我想重定向到同一页面中DOM的某些元素。
我使用了以下代码,
JS:

 $scope.scrollTo = function (id) {
        $location.hash(id);
        $anchorScroll();
    };


HTML:

<div>
    <div id="chartdiv15" class="chartdiv"></div>
    <div id="chartdata15" class="chartdata"></div>
</div>


和:

     <md-input-container>
        <label>Menu</label>
        <md-select ng-model="menu">
          .....
          <md-option ng-click="scrollTo('chartdiv15')">click</md-option>
        </md-select>
    </md-input-container>


因此,此过程使我可以指向链接(http://localhost:3000/#/graphics#chartdiv15
javascript - $ anchorScroll指向链接但不访问它-LMLPHP

它到达该元素,在一秒钟之内它重定向到页面顶部,好像我什么都没有...
有人可以帮助我解决这个奇怪的问题吗?
谢谢 :)

最佳答案

您是否尝试过不使用$ location.hash(id);但只有$ anchorScroll(id);

根据$anchorscroll的文档:


  调用时,它将根据HTML5规范中指定的规则滚动到与指定的哈希相关的元素,或滚动到(如果省略)当前位置的$ location.hash()。


在我的项目中,我仅使用$ anchorScroll(id),效果很好,但是URL不会更新。

如果您还希望更新URL,则应该使用:

    $location.hash(id);
    $anchorScroll();   // <- no id here


很抱歉没有直接回答您的问题,但我认为我们不能仅凭所提供的数据为您提供帮助,如果您添加了一个重现该问题的插件,则建议会更容易。

09-11 19:01