Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 逐div平滑滚动div_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 逐div平滑滚动div

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

我添加了这个脚本,可以使用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 (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));

有一个插件用于此:

在重新创建控制盘时,您将面临许多其他挑战,为什么不使用名为的插件呢


您可以为
动画制作功能指定持续时间,也可以指定放松功能以具有不同的动画行为

您可以在此处找到使用主题的函数和说明:


你能不能花点时间做一把小提琴——让别人更容易帮助你摆弄小提琴:动画的持续时间是你想要的吗?像这样:。如果不是这样的话,那么试着从这里使用另一种缓解方法:。我真的不知道。。我只想当我用代码一个一个地向下滚动时,我希望它是平滑的,因为现在它就像我向下滚动一次一样,而且速度非常快。。。(对不起,我的英语不好)