2017-02-08 4 views
-1

本当に申し訳ありませんが、私は同じ質問に対して多くの似たような話題があることを知っています。私は、機能を無効にするための普遍的なコードがないことに気付いたので、私は混乱しています。私はJSが複雑だと思う(私は手がかりがない)。しかしここに状況があります。私はインターネット上のどこかでjqueryコードを見つけました。私はwordpressで要素を使ってそれを使って背景画像をスクロールさせたい(視差) すべてが完璧に機能しました。唯一の問題はモバイルデバイスであり、その効果は壊れてひどいものになり、私はそれを無効にしたい。ここでのコードは次のとおりです。(!) モバイルデバイスでJqueryの視差を無効にする

function jquery_parallax() { 

    ?> 
    <script language="JavaScript" type="text/javascript"> 


;(function($) { 

    'use strict' 

    var testMobile; 
    var isMobile = { 
     Android: function() { 
      return navigator.userAgent.match(/Android/i); 
     }, 
     BlackBerry: function() { 
      return navigator.userAgent.match(/BlackBerry/i); 
     }, 
     iOS: function() { 
      return navigator.userAgent.match(/iPhone|iPad|iPod/i); 
     }, 
     Opera: function() { 
      return navigator.userAgent.match(/Opera Mini/i); 
     }, 
     Windows: function() { 
      return navigator.userAgent.match(/IEMobile/i); 
     }, 
     any: function() { 
      return (isMobile.Android() || isMobile.BlackBerry() || isMobile.iOS() || isMobile.Opera() || isMobile.Windows()); 
     } 
    }; 

    var parallax = function() { 
     testMobile = isMobile.any(); 
     if (testMobile == null) { 
      $(".parallax").parallax("50%", 0.3); 
     } 
    }; 



    // Dom Ready 
    $(function() { 
     parallax(); 
    }); 
})(jQuery); 

/* 
jQuery Parallax 1.1.3 
Author: Ian Lunn 
Plugin URL: http://www.ianlunn.co.uk/plugins/jquery-parallax/ 

Dual licensed under the MIT and GPL licenses: 
http://www.opensource.org/licenses/mit-license.php 
http://www.gnu.org/licenses/gpl.html 
*/ 
!function(n){var t=n(window),e=t.height();t.resize(function(){e=t.height()}),n.fn.parallax=function(o,r,i){function u(){var i=t.scrollTop();l.each(function(t,u){var l=n(u),f=l.offset().top,s=a(l);i>f+s||f>i+e||l.css("backgroundPosition",o+" "+Math.round((l.data("firstTop")-i)*r)+"px")})}var a,l=n(this);l.each(function(t,e){$element=n(e),$element.data("firstTop",$element.offset().top)}),a=i?function(n){return n.outerHeight(!0)}:function(n){return n.height()},(arguments.length<1||null===o)&&(o="50%"),(arguments.length<2||null===r)&&(r=.1),(arguments.length<3||null===i)&&(i=!0),t.bind("scroll",u).resize(u),u()}}(jQuery); 

    </script> 
    <?php 

} 


if (!(is_admin())) { 
wp_enqueue_script('jquery'); 
add_action('wp_head', 'jquery_parallax'); 
} 

は、あなたがnullに対してチェックする必要がいけない

答えて

0
if (!testMobile) { 
     $(".parallax").parallax("50%", 0.3); 
} 

をありがとう、あなたはその真のではないかどうかを確認したいです。ところで

「機能を無効にするには、非常に複雑なようだ」:

yourfunctiontodisable=()=>console.log("disabled function called"); 
+0

実際には、彼のテスト関数は 'null'なのでを返すん。 * true/falseのみを返す必要があります。 – Blazemonger

+0

クイック返信ありがとうございます。 nullを "false"と "true"で置き換えようとしましたが、再接続は視差がどこでも無効になっています。モバイルデバイスでのみ無効にしたい ありがとうございます。 – AgadirShop

関連する問題