2015-05-02 162 views
0

我想刪除移動(最大寬度767px)屏幕上的skrollr功能。我有下面的代碼(假設)停止在移動設備上的skrollr,但它不起作用(我試圖把它放在一個單獨的,被封存的文件,並把它放在skrollr代碼本身,沒有改變)刪除移動屏幕上的'skrollr'

JAVA代碼在footer.php底部

$(function() { 
// initialize skrollr if the window width is large enough 
if ($(window).width() > 767) { 
skrollr.init(yourOptions); 
} 

// disable skrollr if the window is resized below 768px wide 
$(window).on('resize', function() { 
if ($(window).width() <= 767) { 
skrollr.init().destroy(); // skrollr.init() returns the singleton created above 
} 
}); 
}); 

代碼(使skrollr工作)

<script type="text/javascript"> 
     skrollr.init({ 
     forceHeight: false 
     }); 
    </script> 

    <script type="text/javascript"> 
    //http://detectmobilebrowsers.com/ + tablets 
    (function(a) { 
     if(/android|avantgo|bada\ ...) 
    { 
     //Add skrollr mobile on mobile devices. 
     document.write('<script type="text/javascript" src="js/skrollr.mobile.min.js"><\/script>'); 
    } 
    })(navigator.userAgent||navigator.vendor||window.opera); 
</script> 

回答

0

您在footer.php初始化skrollr不管的C urrent窗口寬度。您的JAVASCRIPT文件的第3行中的條件 - if ($(window).width() > 767) { - 確實有效,但skrollr已在此處由腳本中的javascript初始化.php

我建議您刪除footer.php中skrollr的初始化文件並修改您的JavaScript代碼是這樣的:

(function($) { 
    $(function() { 
     var skrollrInstance; 
     var onResize = function() { 
      var isMobile = $(window).width() <= 767; 
      if (!skrollrInstance && !isMobile) { 
       skrollrInstance = skrollr.init({ 
        forceHeight: false 
       }); 
      } else if(skrollrInstance && isMobile) { 
       skrollrInstance.destroy(); 
       skrollrInstance = null; 
      } 
     }; 
     $(window).on('resize', onResize); 
     onResize(); 
    }); 
})(jQuery); 

小提琴:http://jsfiddle.net/erfvgx85/2/(調整「結果」框進行測試)

我都存儲在一個單獨的變量當前skrollrInstance。正如你所評論的,「// skrollr.init()返回上面創建的單例(實例)」,但如果skrollr此時未被初始化或已被銷燬,則可能是性能問題。

我也認爲只需要在skrollr.init調用一個地方更好 - 否則我們可能會忘記在另一個調用中傳遞相同的選項(forceHeight:false)。 (如你的例子)

+0

如果我從footer.php中刪除代碼,那麼Scrollr根本不起作用,當我從footer.php中刪除頁腳腳本時,它被稱爲 – user3550879

+0

它不使用滾動條在所有。我可以在哪裏把你的小提琴放到你的小提琴 – user3550879

+0

你可以把JavaScript代碼放在一個單獨的JavaScript文件中(例如一個名爲script.js的文件)​​,並使用腳本標籤將它包含在內。 '