Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.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
JQuery:如何使用事件监听器制作动画?_Jquery_Resize - Fatal编程技术网

JQuery:如何使用事件监听器制作动画?

JQuery:如何使用事件监听器制作动画?,jquery,resize,Jquery,Resize,现在,仅当窗口宽度大于1100 px时才执行此动画,但如果动态调整浏览器大小,则需要刷新浏览器。如何解决这一问题,使浏览器不需要刷新?命名您的函数,并按如下方式收听调整大小事件: $(function(){ if($(window).width()>1100){ $("#logo").hover(function(){ $(this).animate({paddingTop:"0px",paddingBottom:"20px"},200);

现在,仅当窗口宽度大于1100 px时才执行此动画,但如果动态调整浏览器大小,则需要刷新浏览器。如何解决这一问题,使浏览器不需要刷新?

命名您的函数,并按如下方式收听调整大小事件:

$(function(){
    if($(window).width()>1100){
        $("#logo").hover(function(){
            $(this).animate({paddingTop:"0px",paddingBottom:"20px"},200);
            },function(){
                $(this).animate({paddingTop:"20px",paddingBottom:"0"},200);
                });
        }
    $(window).resize(function(){
        if($(window).width()>1100){
            $("#logo").hover(function(){
                $(this).animate({paddingTop:"0px",paddingBottom:"20px"},200);
                },function(){
                    $(this).animate({paddingTop:"20px",paddingBottom:"0"},200);
                    });
            }
        });
    });

根据窗口大小在resize事件中注册/取消注册处理程序

$(window).on("resize", yourfunction());

演示:

当窗口折叠时,动画将成功停用。但当窗口再次展开,重新激活动画时,它会变得非常起伏/滞后。你知道为什么吗?它在小提琴上也落后了。这是我不得不忍受的东西吗?那次调整解决了它。您是一个stud。您将如何更改此脚本以使用视口宽度而不是文档宽度,使其与CSS媒体查询匹配?@oceanic815我以前从未使用过它,请尝试或
$(function () {
    $(window).resize(function () {
        if ($(window).width() > 1100) {
            $("#logo").on('mouseenter.anim', function () {
                $(this).animate({
                    paddingTop: "0px",
                    paddingBottom: "20px"
                }, 200);
            }).on('mouseleave.anim', function () {
                $(this).animate({
                    paddingTop: "20px",
                    paddingBottom: "0"
                }, 200);
            });
        } else {
            $("#logo").off('mouseenter.anim mouseleave.anim');
        }
    }).resize();
});