没有 jQuery 的平滑滚动锚链接 [英] Smooth scroll anchor links WITHOUT jQuery
本文介绍了没有 jQuery 的平滑滚动锚链接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
是否可以使用平滑滚动来锚定链接但没有 jQuery
?我正在创建一个新站点,但我不想使用 jQuery
.
Is it possible to use smooth scroll to anchor links but without jQuery
? I am creating a new site and I don't want to use jQuery
.
推荐答案
使用这里的函数:JavaScript 动画 并修改它来修改一个属性(不仅仅是一个样式的属性),你可以尝试这样的事情:
Using the function from here: JavaScript animation and modifying it to modify a property (not only a style's property), you can try something like this:
演示: http://jsfiddle.net/7TAa2/1/
只是说...
function animate(elem, style, unit, from, to, time, prop) {
if (!elem) {
return;
}
var start = new Date().getTime(),
timer = setInterval(function() {
var step = Math.min(1, (new Date().getTime() - start) / time);
if (prop) {
elem[style] = (from + step * (to - from)) + unit;
} else {
elem.style[style] = (from + step * (to - from)) + unit;
}
if (step === 1) {
clearInterval(timer);
}
}, 25);
if (prop) {
elem[style] = from + unit;
} else {
elem.style[style] = from + unit;
}
}
window.onload = function() {
var target = document.getElementById("div5");
animate(document.scrollingElement || document.documentElement, "scrollTop", "", 0, target.offsetTop, 2000, true);
};
div {
height: 50px;
}
<div id="div1">asdf1</div>
<div id="div2">asdf2</div>
<div id="div3">asdf3</div>
<div id="div4">asdf4</div>
<div id="div5">asdf5</div>
<div id="div6">asdf6</div>
<div id="div7">asdf7</div>
<div id="div8">asdf8</div>
<div id="div9">asdf9</div>
<div id="div10">asdf10</div>
<div id="div10">asdf11</div>
<div id="div10">asdf12</div>
<div id="div10">asdf13</div>
<div id="div10">asdf14</div>
<div id="div10">asdf15</div>
<div id="div10">asdf16</div>
<div id="div10">asdf17</div>
<div id="div10">asdf18</div>
<div id="div10">asdf19</div>
<div id="div10">asdf20</div>
这篇关于没有 jQuery 的平滑滚动锚链接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文