Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度1-$anchorScroll,无需更改URL_Javascript_Angularjs_Scroll - Fatal编程技术网

Javascript 角度1-$anchorScroll,无需更改URL

Javascript 角度1-$anchorScroll,无需更改URL,javascript,angularjs,scroll,Javascript,Angularjs,Scroll,我的html中有以下元素: <button class="btn" type="button" ng-click="$ctrl.scrollTo()"> </button> <div id="result"> </div> 这很好,但我希望解决方案不会更改URL(不要在URL中添加#结果),如果可能,还可以添加平滑滚动 您的解决方案与我的解决方案很接近吗?$anchorScroll,因为它的名字是滚

我的html中有以下元素:

  <button class="btn"
          type="button"
          ng-click="$ctrl.scrollTo()">
  </button>
<div id="result">
</div>
这很好,但我希望解决方案不会更改URL(不要在URL中添加#结果),如果可能,还可以添加平滑滚动


您的解决方案与我的解决方案很接近吗?

$anchorScroll,因为它的名字是滚动到页面上的
anchor
id
,据我所知,它将始终更改URL。但是对于这个问题有很多不同的解决方案

例如,您可以使用本机scrollIntoView(检查兼容性,但它适用于所有体面的浏览器,甚至IE8):

因此,您可以执行以下操作以获得平滑滚动效果:

 // play around with options if you want - you can put block: "start" which doesn't play very nice with jsfiddle but should work fine on any machine. 
    $window.document.getElementById(id).scrollIntoView({behavior: "smooth", block: "end"});
我为您准备了一个快速示例:


$anchorScroll,正如它的名字所说,滚动到页面上的
anchor
id
,据我所知,它将始终更改URL。但是对于这个问题有很多不同的解决方案

例如,您可以使用本机scrollIntoView(检查兼容性,但它适用于所有体面的浏览器,甚至IE8):

因此,您可以执行以下操作以获得平滑滚动效果:

 // play around with options if you want - you can put block: "start" which doesn't play very nice with jsfiddle but should work fine on any machine. 
    $window.document.getElementById(id).scrollIntoView({behavior: "smooth", block: "end"});
我为您准备了一个快速示例: