Javascript 逐div平滑滚动div
我添加了这个脚本,可以使用mouseweel立即向下滚动100%Javascript 逐div平滑滚动div,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我添加了这个脚本,可以使用mouseweel立即向下滚动100% $(document).ready(function () { var divs = $('.mydiv'); var dir = 'up'; // wheel scroll direction var div = 0; // current div $(document.body).on('DOMMouseScroll mousewheel', function (e) { if
$(document).ready(function () {
var divs = $('.mydiv');
var dir = 'up'; // wheel scroll direction
var div = 0; // current div
$(document.body).on('DOMMouseScroll mousewheel', function (e) {
if (e.originalEvent.detail > 0 || e.originalEvent.wheelDelta < 0) {
dir = 'down';
} else {
dir = 'up';
}
// find currently visible div :
div = -1;
divs.each(function(i){
if (div<0 && ($(this).offset().top >= $(window).scrollTop())) {
div = i;
}
});
if (dir == 'up' && div > 0) {
div--;
}
if (dir == 'down' && div < divs.length) {
div++;
}
//console.log(div, dir, divs.length);
$('html,body').stop().animate({
scrollTop: divs.eq(div).offset().top
}, 200);
return false;
});
$(window).resize(function () {
$('html,body').scrollTop(divs.eq(div).offset().top);
});
});
$(文档).ready(函数(){
var divs=$('.mydiv');
var dir='up';//滚轮滚动方向
var div=0;//当前div
$(document.body).on('DOMMouseScroll mousewheel',函数(e){
如果(e.originalEvent.detail>0 | | e.originalEvent.wheelDelta<0){
dir='down';
}否则{
dir='up';
}
//查找当前可见的div:
div=-1;
每个分区(功能(i){
if(div=$(window.scrollTop()){
div=i;
}
});
if(dir=='up'&&div>0){
分区--;
}
if(dir=='down'&&div
但是我需要在上面添加一些东西,这样滚动看起来很平滑,我该怎么做呢
解决方案: @user3127499已经为您提供了一个可工作的 他把时间从100改为1000
$('html,body').stop().animate({
scrollTop: divs.eq(div).offset().top
}, 1000);
并在此处添加了1000个延迟:
$('html,body').scrollTop(divs.eq(div).offset().top.delay(1000));
有一个插件用于此: 在重新创建控制盘时,您将面临许多其他挑战,为什么不使用名为的插件呢
您可以为
动画制作功能指定持续时间,也可以指定放松功能以具有不同的动画行为
您可以在此处找到使用主题的函数和说明:
你能不能花点时间做一把小提琴——让别人更容易帮助你摆弄小提琴:动画的持续时间是你想要的吗?像这样:。如果不是这样的话,那么试着从这里使用另一种缓解方法:。我真的不知道。。我只想当我用代码一个一个地向下滚动时,我希望它是平滑的,因为现在它就像我向下滚动一次一样,而且速度非常快。。。(对不起,我的英语不好)