Background Animation

Background moving with mouse with the help of TweenMax.

by Shishir Morshed

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/gsap/1.17.0/TweenMax.min.js"></script>
<div id="banner">
    <div id="anim-wrapper"></div>
</div>

CSS

* {
	margin: 0;
	padding: 0;
	position: absolute;
}

html,body,br {
	position: static;
}

#banner {
	width: 900px;
	height: 300px;
	border: 1px solid #ccc;
	overflow: hidden;
	left: 50%;
	top: 50%;
	margin: -150px 0 0 -450px;
}

#anim-wrapper {
	width: 3000px;
	height: 2000px;
	background-image: url(http://shishirmorshed.github.io/cloud-resources/images/external/ghashful.jpg);
	background-position: 0px 19%;
	top: 50%;
	margin-top: -1000px;
}

JavaScript

function $(selector){
	return document.querySelector(selector);
}

window.addEventListener('load', bannerInit);

function bannerInit(){
	animateBg();
}

function animateBg(){
	var self = $('#banner');
	var art = $('#anim-wrapper');
	var offset = 869;
	var moveTime = 0.3;
	var viewport = self;
	var parentX = self.offsetLeft;
	var parentY = self.offsetTop;
	var parentWdith = self.offsetWidth;
	
	
	viewport.addEventListener('mousemove', function(e){
		
		var moveX = e.pageX - parentX;
		var moveY = e.pageY - parentY;
		
		
			
		TweenMax.to(art, moveTime, {x:-moveX, overwrite:true});
		
		if(moveY> 150){
			 TweenMax.to(art, moveTime*2, {marginTop: -950})
		}else {
			 TweenMax.to(art, moveTime*2, {marginTop: -1050})
		}
		
	});
}