2012-01-12 83 views
1

我使用的是不同的@media建立一个网站(最小宽度,最大宽度)来显示网站主设备上完美。jQuery的停止动画,如果条件

我有遵循滚动屏幕顶部的菜单,这是jQuery代码:

var win_width = $(window).width(); 

     if (win_width >= 751) { 
      var el = $('div.menu-header'); 
      var elpos_original = el.offset().top; 
      $(window).scroll(function(){ 
       var elpos = el.offset().top; 
       var windowpos = $(window).scrollTop(); 
       var finaldestination = windowpos; 
       if(windowpos<elpos_original) { 
        finaldestination = elpos_original; 
        el.stop().css({'top':0}); 
       } else { 
        el.stop().animate({'top':finaldestination-elpos_original+30},500); 
       } 
      }); 
     } 
    } 

它工作正常,但如果我在750像素调整窗口的大小,我想停止这个功能并将var el恢复到原始位置。

回答

1

注意,给予滚动功能将被立即调用,每当用户将滚动

var el = $('div.menu-header'), 
elpos_original = el.offset().top; 
$(window).scroll (function() { 
    var win_width = $(this).width(); 
     if (win_width >= 751) { 
     var elpos = el.offset().top; 
     var windowpos = $(this).scrollTop(); 
     var finaldestination = windowpos; 
     if(windowpos<elpos_original) { 
      finaldestination = elpos_original; 
      el.stop().css({'top':0}); 
     } else { 
      el.stop().animate({'top':finaldestination-elpos_original+30},500); 
     } 
    } else { 
     $(this).resize(); // calling to handle declared below. 
    } 
}).resize(function() { 
     // Check when resizing whether size is at most 750 
     // and restore original position; 
     if($(this).width() <=750) { 
      el.stop().css("top", "0") 
     } 
}) 
+0

有一个错误,当我尝试调整窗口的大小似乎有无限的高度。 – 2012-01-12 13:30:47

+0

已编辑,原始pos必须保留。看看 – abuduba 2012-01-12 13:34:29

+0

nope,它不工作,我总是有无限的高度.. :( – 2012-01-12 14:01:54