Navigation
This is archived content. Visit our new forum.

Tagged: 

  • Author
    Posts
  • #1361400
    Lumos
    Participant

    Hey Themeco,

    I am trying to implement an animated gradient background and they are using jQuery 2.0.2. I had added the script below in my child theme functions.php.

    add_action('wp_footer','custom_footer_script');
    function custom_footer_script() { ?>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.2/jquery.min.js" type="text/javascript"></script>
    <?php	
    }

    It only works when I embed the script but I am getting the following error in my console.

    Uncaught TypeError: c.hoverIntent is not a function
        at HTMLDocument.<anonymous> (x-head.min.js?ver=4.6.4:1)
        at i (jquery.js?ver=1.12.4:2)
        at Object.fireWith [as resolveWith] (jquery.js?ver=1.12.4:2)
        at Function.ready (jquery.js?ver=1.12.4:2)
        at HTMLDocument.K (jquery.js?ver=1.12.4:2)
    #1361483
    Thai
    Moderator

    Hi There,

    Wordpress already loaded the jQuery library, so you don’t have to enqueue it again.

    Please update the custom JS a bit:

    (function($){ 
    
    	var colors = new Array(
    	  [62,35,255],
    	  [60,255,60],
    	  [255,35,98],
    	  [45,175,230],
    	  [255,0,255],
    	  [255,128,0]);
    
    	var step = 0;
    	//color table indices for: 
    	// current color left
    	// next color left
    	// current color right
    	// next color right
    	var colorIndices = [0,1,2,3];
    
    	//transition speed
    	var gradientSpeed = 0.002;
    
    	function updateGradient()
    	{
    	  
    	  if ( $===undefined ) return;
    	  
    	var c0_0 = colors[colorIndices[0]];
    	var c0_1 = colors[colorIndices[1]];
    	var c1_0 = colors[colorIndices[2]];
    	var c1_1 = colors[colorIndices[3]];
    
    	var istep = 1 - step;
    	var r1 = Math.round(istep * c0_0[0] + step * c0_1[0]);
    	var g1 = Math.round(istep * c0_0[1] + step * c0_1[1]);
    	var b1 = Math.round(istep * c0_0[2] + step * c0_1[2]);
    	var color1 = "rgb("+r1+","+g1+","+b1+")";
    
    	var r2 = Math.round(istep * c1_0[0] + step * c1_1[0]);
    	var g2 = Math.round(istep * c1_0[1] + step * c1_1[1]);
    	var b2 = Math.round(istep * c1_0[2] + step * c1_1[2]);
    	var color2 = "rgb("+r2+","+g2+","+b2+")";
    
    	 $('#gradient').css({
    	   background: "-webkit-gradient(linear, left top, right top, from("+color1+"), to("+color2+"))"}).css({
    	    background: "-moz-linear-gradient(left, "+color1+" 0%, "+color2+" 100%)"});
    	  
    	  step += gradientSpeed;
    	  if ( step >= 1 )
    	  {
    	    step %= 1;
    	    colorIndices[0] = colorIndices[1];
    	    colorIndices[2] = colorIndices[3];
    	    
    	    //pick two new target color indices
    	    //do not pick the same as the current one
    	    colorIndices[1] = ( colorIndices[1] + Math.floor( 1 + Math.random() * (colors.length - 1))) % colors.length;
    	    colorIndices[3] = ( colorIndices[3] + Math.floor( 1 + Math.random() * (colors.length - 1))) % colors.length;
    	    
    	  }
    	}
    
    	setInterval(updateGradient,10);
    })(jQuery)

    Let us know how it goes!

    #1361733
    Lumos
    Participant

    That worked, thanks Thai!

    #1362284
    Friech
    Moderator

    You’re more than welcome, glad we could help.

    Cheers!

  • <script> jQuery(function($){ $("#no-reply-1361400 .bbp-template-notice, .bbp-no-topic .bbp-template-notice").removeClass('bbp-template-notice'); }); </script>