2017-02-08 3 views
-1

Es tut mir wirklich leid, ich weiß, es gibt viele ähnliche Themen für die gleiche Frage. außer dass ich verwirrt bin, denn wie ich bemerkte, gibt es keinen universellen code zum deaktivieren von funktionen. Ich denke mit JS ist kompliziert (ich habe keine Ahnung). Aber hier ist die Situation. ich habe einen jquery code irgendwo im internet gefunden, ich wollte ihn durch elementor mit wordpress benutzen um die hintergrundbilder auch scrollen zu lassen (parallax) alles hat perfekt funktioniert. Das einzige Problem ist mit mobilen Geräten, der Effekt ist korrupt und sieht schrecklich aus, und ich möchte es deaktivieren. hier ist der Code:Deaktivieren Jquery Parallax auf mobilen Geräten

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'); 
} 

Danke

Antwort

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

Sie brauchen nicht gegen null zu überprüfen, wollen Sie, wenn es nicht wahr überprüfen (!).

By the way "um eine Funktion zu deaktivieren scheint sehr kompliziert":

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

Eigentlich ist die Test-Funktion zurückgeben 'null'. Es * sollte * nur Wahr/Falsch zurückgeben. – Blazemonger

+0

danke für die schnelle antwort. Ich habe versucht, null durch "falsch" und "wahr" zu ersetzen, das reslut ist die Parallaxe jetzt ist überall deaktiviert. Ich möchte es nur auf mobilen Geräten deaktivieren. danke noch einmal, mein Herr! – AgadirShop

Verwandte Themen