javascript - 动画主体滚动问题

标签 javascript jquery

在我的网站中,我将有一个左右面板。右侧面板包含所有链接,左侧面板包含所有视频。当用户单击链接时,我必须以平滑的动画对主体滚动进行动画处理,并且需要通过应用新的类名称来突出显示特定的视频背景,并且在滚动时需要删除类名(新类名)。这里我的问题是在添加新类名时应用动画效果时出现一些延迟。任何人都可以帮助我们解决这个问题。 我在这里附上代码。请检查。

jQuery(document).ready(function(){  
    jQuery('.sub-cat-list a[href*="#"]').click(function (e){    
        e.preventDefault();
        var clickURL = jQuery(this).attr('href'); 
        var target = this.hash; 
        var offTop =  parseInt(jQuery(target).offset().top);
        var scroLtoP = parseInt(jQuery(window).scrollTop());

        if (typeof(jQuery(target).offset()) != 'undefined') { 
            jQuery( "html, body" ).animate({
                scrollTop: offTop 
             },800).promise().done(function(even) { 
                jQuery(target).parent().addClass('focusin');
                setTimeout(function(){                      
                    removeFocClass(target); 
                },900);
            });         
        }
    });

function removeFocClass(curEle)
{
    var menuTargetFC = jQuery(curEle).parent().hasClass('focusin');     
    if(menuTargetFC)
    {       
        jQuery(window).scroll(function(){           
            jQuery(curEle).parent().removeClass('focusin');         
        });     
    }   
    else{
        jQuery(curEle).parent().addClass('focusin');        
    }       
}
});

最佳答案

你为什么不改变这个:

jQuery( "html, body" ).animate({
            scrollTop: offTop 
         },800).promise().done(function(even) { 
            jQuery(target).parent().addClass('focusin');
            setTimeout(function(){                      
                removeFocClass(target); 
            },900);
        });         

对此:

jQuery(target).parent().addClass('focusin');
jQuery( "html, body" ).animate({
            scrollTop: offTop 
         },800).promise().done(function(even) { 
            setTimeout(function(){                      
                removeFocClass(target); 
            },900);
        });      

因此您将在动画之前添加类并避免 800 毫秒的动画延迟。

关于javascript - 动画主体滚动问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40951165/

相关文章:

jquery - 我需要使用 jQuery 将一个 div 替换为另一个 div

javascript - 渲染 react-bootstrap 组件时出错

javascript - Angular then() 内的多个函数

javascript - 有人知道能够固定位置的 jQuery 鱼眼/停靠导航插件吗?

javascript - 如何获取 url 的最后一个元素去除不需要的字符?

使用对象和自执行匿名函数的 jQuery 命名空间

php - 将转换为 json 字符串的对象发送到 php 脚本

jquery - Ajax 一次点击后可以执行多个操作

javascript - 遍历nodejs中的文本文件

javascript - IE 10 无法获取最新的 JS 文件