仅javascript平滑滚动按钮按下
Javascript-only smooth scroll on button press
这个网站有一个全高的图像开始。进一步的内容位于折叠下方,在图像底部有一个"滚动"元素,提示用户发现其余的内容。点击后,我成功地将网站向下滚动了300像素。不过,我想让这一切顺利进行。下面是我当前的代码:
window.onload = function () {
var scroll = document.getElementById("scroll");
scroll.onclick = function () {
var top = self.pageYOffset;
var goal = 300;
for(var i=0, l=goal; i<l; ++i) {
window.scrollBy(0,1);
}
};
};
这适用于滚动,但不流畅。我想如果我有for循环,改变窗口。scrollBy值设置为。001之类的值会使滚动更慢(因此,平滑),但该函数似乎不接受小数点。
提示吗?从技术上讲,现在已经没问题了,但我想再加最后一点润色。谢谢!
您的代码运行得非常快,您看不到平滑的效果。您必须使用setInterval()
函数,并在每次迭代(n -迭代次数)中滚动到300/n px。这样的:
window.onload = function () {
var scroll = document.getElementById("scroll");
scroll.onclick = function () {
var currentScroll = 0;
var goal = 300;
var step = goal/10
var timer = setInterval( function () {
if (currentScroll < goal) {
window.scrollBy(0, step);
currentScroll += step;
} else {
clearInterval(timer);
}
}, 50);
};
};
试试这样做…example
$(function() {
$('a[href*=#]:not([href=#])').click(function() {
if (location.pathname.replace(/^'//,'') == this.pathname.replace(/^'//,'') && location.hostname == this.hostname) {
var target = $(this.hash);
target = target.length ? target : $('[name=' + this.hash.slice(1) +']');
if (target.length) {
$('html,body').animate({
scrollTop: target.offset().top
}, 1000);
return false;
}
}
});
});
相关文章:
- 如何停止向上滚动<按钮dojoType=“;dijit.form.Button”;type=“;提交”/>在
- 每次单击按钮时水平滚动元素
- 如何用按钮控制文本区域滚动
- 如何在已经有图标的滚动到顶部按钮中添加文本
- 按下后退按钮时,如何保持可滚动区域的滚动位置
- 模式上的后退和前进按钮位于图像库上(可滚动浏览)
- 如何停止两个按钮执行相同的工作?在这种情况下,它们都会滚动到顶部
- 如何在滚动时突出显示菜单按钮 - AngularJs
- 每次我按下按钮时,网站都会向上滚动
- 使用按钮滚动iframe-iPhone
- 从一个按钮滚动到不同的 ID
- jQuery通过向上/向下按钮滚动到下一个元素 - 如何为手动滚动添加处理,否则会混淆这一点
- 单击“返回顶部”按钮(滚动顶部)多次发布
- 不需要使用jQuery按钮滚动
- 主干后退按钮滚动问题
- 如何使关闭按钮滚动与页面
- 使用“下一步”和“上一步”按钮滚动锚标记
- 根据单击的按钮滚动到页面
- 防止左/右按钮滚动页面
- 如何使页面滚动到一个特定的元素时,单击一个按钮?滚动动画,如果可能的话