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