Tagged: x
-
AuthorPosts
-
May 16, 2016 at 6:52 am #993417
AzeRotHParticipantHello.
I have a Script that creates lines in random ways and i would like to use this script as the background of some pages in my theme.
Here is the scripts demo :
And Here is some sample of used Script as background :
So , would you please help me?
I have The js file and somehow i think i have to include the js file or maybe use the code in custom js? :-/
Thanks for your support 🙂May 16, 2016 at 7:21 am #993447
ChristopherModeratorHi there,
You may be able to use it as section’s background but not page’s background, first we need to see the code and the way it should be implemented.
Thanks.
May 17, 2016 at 1:47 am #995008
AzeRotHParticipantHey there, here is all the files (.Js , .CSS and .html example)
Would be so nice if it could be somehow implemented into pages. :-[
Thakns for your support.May 17, 2016 at 2:12 am #995038
ChristopherModeratorHi there,
Sorry it’s not possible without custom development which would be beyond the scope of our support.
Please add a raw content element and insert following code :
<canvas id="spiders"> </canvas> <!-- copyright Sattar AzeRotH http://Tejaratpars.net/ --> <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> <script src='http://cdnjs.cloudflare.com/ajax/libs/gsap/1.14.2/TweenMax.min.js'></script> <script>$( function() { var width, height, canvas, ctx, points, target, animateHeader = true; // Main initHeader(); initAnimation(); addListeners(); function initHeader() { width = window.innerWidth; height = window.innerHeight; target = { x: width / 2, y: height / 3 }; canvas = document.getElementById( 'spiders' ); canvas.width = width; canvas.height = height; ctx = canvas.getContext( '2d' ); // create points points = []; for ( var x = 0; x < width; x = x + width / 20 ) { for ( var y = 0; y < height; y = y + height / 20 ) { var px = x + Math.random() * width / 20; var py = y + Math.random() * height / 20; var p = { x: px, originX: px, y: py, originY: py }; points.push( p ); } } // for each point find the 5 closest points for ( var i = 0; i < points.length; i++ ) { var closest = []; var p1 = points[ i ]; for ( var j = 0; j < points.length; j++ ) { var p2 = points[ j ] if ( !( p1 == p2 ) ) { var placed = false; for ( var k = 0; k < 5; k++ ) { if ( !placed ) { if ( closest[ k ] == undefined ) { closest[ k ] = p2; placed = true; } } } for ( var k = 0; k < 5; k++ ) { if ( !placed ) { if ( getDistance( p1, p2 ) < getDistance( p1, closest[ k ] ) ) { closest[ k ] = p2; placed = true; } } } } } p1.closest = closest; } // assign a circle to each point for ( var i in points ) { var c = new Circle( points[ i ], 2 + Math.random() * 2, 'rgba(255,255,255,0.3)' ); points[ i ].circle = c; } } // Event handling function addListeners() { if ( !( 'ontouchstart' in window ) ) { window.addEventListener( 'mousemove', mouseMove ); } window.addEventListener( 'scroll', scrollCheck ); window.addEventListener( 'resize', resize ); } function mouseMove( e ) { var posx = posy = 0; if ( e.pageX || e.pageY ) { posx = e.pageX; posy = e.pageY; } else if ( e.clientX || e.clientY ) { posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop; } target.x = posx; target.y = posy; } function scrollCheck() { if ( document.body.scrollTop > height ) animateHeader = false; else animateHeader = true; } function resize() { width = window.innerWidth; height = window.innerHeight; canvas.width = width; canvas.height = height; } // animation function initAnimation() { animate(); for ( var i in points ) { shiftPoint( points[ i ] ); } } function animate() { if ( animateHeader ) { ctx.clearRect( 0, 0, width, height ); for ( var i in points ) { // detect points in range if ( Math.abs( getDistance( target, points[ i ] ) ) < 4000 ) { points[ i ].active = 0.3; points[ i ].circle.active = 0.6; } else if ( Math.abs( getDistance( target, points[ i ] ) ) < 20000 ) { points[ i ].active = 0.1; points[ i ].circle.active = 0.3; } else if ( Math.abs( getDistance( target, points[ i ] ) ) < 40000 ) { points[ i ].active = 0.02; points[ i ].circle.active = 0.1; } else { points[ i ].active = 0; points[ i ].circle.active = 0; } drawLines( points[ i ] ); points[ i ].circle.draw(); } } requestAnimationFrame( animate ); } function shiftPoint( p ) { TweenLite.to( p, 1 + 1 * Math.random(), { x: p.originX - 50 + Math.random() * 100, y: p.originY - 50 + Math.random() * 100, onComplete: function() { shiftPoint( p ); } } ); } // Canvas manipulation function drawLines( p ) { if ( !p.active ) return; for ( var i in p.closest ) { ctx.lineWidth = 1.5; ctx.beginPath(); ctx.moveTo( p.x, p.y ); ctx.lineTo( p.closest[ i ].x, p.closest[ i ].y ); ctx.strokeStyle = 'rgba(87,67,87,' + p.active + ')'; ctx.stroke(); } } function Circle( pos, rad, color ) { var _this = this; // constructor ( function() { _this.pos = pos || null; _this.color = color || null; } )(); this.draw = function() { if ( !_this.active ) return; ctx.beginPath(); ctx.arc( _this.pos.x, _this.pos.y, _this.radius, 0, 2 * Math.PI, false ); ctx.fillStyle = 'rgba(255,0,0,' + _this.active + ')'; ctx.fill(); }; } // Util function getDistance( p1, p2 ) { return Math.pow( p1.x - p2.x, 2 ) + Math.pow( p1.y - p2.y, 2 ); } } );</script>Hope it helps.
-
AuthorPosts
- <script> jQuery(function($){ $("#no-reply-993417 .bbp-template-notice, .bbp-no-topic .bbp-template-notice").removeClass('bbp-template-notice'); }); </script>
