JQuery滚动速度请是即时的



我希望我的JQuery滚动速度是即时(不是平滑/不快,而是像经典的锚点href="#"一样即时(。这似乎是关于排队的问题,但我怎么能更改我的脚本呢?谢谢你的帮助。

https://jsfiddle.net/7f1Ldeqr/

<div style="height:3000px">
<a href="#" id="link">Down</a>
<a name="here" style="position:relative; top:2000px;"></a>
</div>
<script src='http://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.2.1.js'></script>
<script>
function scrolling(aid){
var aTag = $("a[name='"+ aid +"']");
$('html,body').animate({scrollTop: aTag.offset().top},'fast');}
$("#link").click(function() {
scrolling('here');});
</script>

将"fast"替换为0。第二个参数是以毫秒为单位的持续时间

<script>
function scrolling(aid){
var aTag = $("a[name='"+ aid +"']");
$('html,body').animate({scrollTop: aTag.offset().top},0);}
$("#link").click(function() {
scrolling('here');});
</script>

不使用快速替换为0.2之类的东西,只使用0似乎不起作用,所以接近0的超小值就可以了。

感谢您的回答。更改该参数并没有改变我的内容。我遵循了quantumPutter关于scrollIntoView的建议,并成功了(最终不需要JQuery。我添加了术语"href="#openmenu"onclick="window.location.hash='#menu1'",以证明我们可以将其他内容组合在一起,使滚动仍然有效(。

https://jsfiddle.net/7k1s6t80/

<div style="height:3000px">
<a id="forscroll" href="#openmenu" onclick="window.location.hash = '#menu1'">Down</a>
<a id="here" style="position:absolute; top: 2000px;"></a>
</div>
<script>
const target = document.getElementById('here'),
button = document.getElementById('forscroll');
button.addEventListener('click',
function(){target.scrollIntoView({block: 'start',behavior:'instant',inline:'start'});});
</script>

此外,为了回答我的问题,让JQuery即时滚动(就像我想的那样,这是关于队列的(=>

$('html,body').animate({scrollTop: e.offset().top},{queue: false,duration: 0})

相关内容

  • 没有找到相关文章

最新更新