Javascript 如何在没有jQuery的情况下,在模式中创建一个平滑的滚动到给定id的元素

Javascript 如何在没有jQuery的情况下,在模式中创建一个平滑的滚动到给定id的元素,javascript,scroll,modal-dialog,Javascript,Scroll,Modal Dialog,因此,我有一个onclick事件的代码,它将导致在普通(无jquery)Javascript中平滑滚动到给定id的元素,现在我想在一个模式中实现它 function scrollTo(element, to, duration) { if (duration <= 0) return; var difference = to - element.scrollTop; var perTick = difference / duration * 10; setTime

因此,我有一个onclick事件的代码,它将导致在普通(无jquery)Javascript中平滑滚动到给定id的元素,现在我想在一个模式中实现它

function scrollTo(element, to, duration) {
  if (duration <= 0) return;
    var difference = to - element.scrollTop;
    var perTick = difference / duration * 10;

  setTimeout(function() {
    element.scrollTop = element.scrollTop + perTick;
    if (element.scrollTop === to) return;
    scrollTo(element, to, duration - 10);
    }, 10);
}


 elmnt = document.getElementById("example");
 scrollTo(document.body, elmnt.offsetTop, 600);
函数滚动至(元素、至、持续时间){

如果(持续时间使用平滑滚动库无Jquery

正文{
高度:700px;
}

Lorem Ipsum仅仅是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是该行业的标准虚拟文本,当时一位不知名的印刷商拿起一个打印工具,争先恐后地制作了一本字体样本书。它不仅存活了五个世纪,而且还跨越到了电子排版,仍然是埃森理论上没有变化。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表单的发布而流行,最近随着桌面出版软件(如Aldus PageMaker)包括Lorem Ipsum版本而流行。
Lorem Ipsum仅仅是印刷和排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是该行业的标准虚拟文本,当时一位不知名的印刷商拿起一个打印工具,争先恐后地制作了一本字体样本书。它不仅存活了五个世纪,而且还跨越到了电子排版,仍然是埃森理论上没有变化。它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表单的发布而流行,最近随着桌面出版软件(如Aldus PageMaker)包括Lorem Ipsum版本而流行。
巴辛加!
var scroll=new SmoothScroll('a[href*=“#”]”{
速度:500,,
speedAsDuration:true
});

看看,这有一个本机CSS功能:
滚动行为

CSS

html {
  scroll-behavior: smooth;
}
JAVASCRIPT

window.scroll({
  top: 2500, 
  left: 0, 
  behavior: 'smooth' <pre rel="HTML"><code markup="tt" class="language-markup">
});

// Scroll certain amounts from current position 
window.scrollBy({ 
  top: 100, // could be negative value
  left: 0, 
  behavior: 'smooth' 
});

// Scroll to a certain element
document.querySelector('.hello').scrollIntoView({ 
  behavior: 'smooth' 
});
window.scroll({
顶部:2500,
左:0,,
行为:“平滑”
});
//从当前位置滚动某些金额
window.scrollBy({
top:100,//可能是负值
左:0,,
行为:“平滑”
});
//滚动到某个元素
document.querySelector('.hello').scrollIntoView({
行为:“平滑”
});

ref:

我们都知道,这就是诀窍

CSS

Javascript

document.querySelector('poleTimeDiv').scrollIntoView({ behavior: 'smooth' });

我通过这个链接找到了解决方案,所以谢谢你。我无法让上面的内容发挥作用,但最终达到了目的。
document.querySelector('poleTimeDiv').scrollIntoView({ behavior: 'smooth' });