【问题标题】:JQuery: how to use event listener for animation?JQuery:如何为动画使用事件监听器?
【发布时间】:2014-03-25 11:25:20
【问题描述】:
$(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);
                    });
            }
        });
    });

目前,此动画仅在窗口宽度大于 1100 像素时执行,但如果动态调整浏览器大小,则需要刷新浏览器。如何解决这个问题,以便不需要刷新浏览器?

【问题讨论】:

    标签: jquery resize


    【解决方案1】:

    为你的函数命名,然后像这样监听 resize 事件:

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

    【讨论】:

      【解决方案2】:

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

      $(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();
      });
      

      演示:Fiddle

      【讨论】:

      • 当窗口折叠时,动画成功停用。但是当窗口再次展开,重新激活动画时,它变得非常不稳定/滞后。任何想法为什么?
      • 它也落后于小提琴。这是我必须忍受的东西吗?
      • 那个调整修复了它。你是个种马。
      • 如何更改此脚本以使用视口宽度而不是文档宽度,以使其与 CSS 媒体查询匹配?
      猜你喜欢
      • 2011-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-23
      • 1970-01-01
      • 2013-08-22
      • 2019-04-13
      相关资源
      最近更新 更多