102 lines
2.1 KiB
JavaScript
102 lines
2.1 KiB
JavaScript
|
//
|
||
|
// app.js
|
||
|
//
|
||
|
|
||
|
var APP = (function() {
|
||
|
|
||
|
function initialize (){
|
||
|
APP.Utils.runIfClassNamePresent('page-home', initHome);
|
||
|
}
|
||
|
|
||
|
function initHome() {
|
||
|
APP.Homepage.init();
|
||
|
}
|
||
|
|
||
|
//api
|
||
|
return {
|
||
|
initialize: initialize
|
||
|
}
|
||
|
|
||
|
})();
|
||
|
;//
|
||
|
// util.js
|
||
|
//
|
||
|
var APP = APP || {};
|
||
|
|
||
|
APP.Utils = (function () {
|
||
|
return {
|
||
|
//check for mobile user agents
|
||
|
isMobile : (function(){
|
||
|
if( navigator.userAgent.match(/Android/i)
|
||
|
|| navigator.userAgent.match(/webOS/i)
|
||
|
|| navigator.userAgent.match(/iPhone/i)
|
||
|
//|| navigator.userAgent.match(/iPad/i)
|
||
|
|| navigator.userAgent.match(/iPod/i)
|
||
|
|| navigator.userAgent.match(/BlackBerry/i)
|
||
|
|| navigator.userAgent.match(/Windows Phone/i)
|
||
|
){
|
||
|
return true;
|
||
|
}
|
||
|
else {
|
||
|
return false;
|
||
|
}
|
||
|
})(),
|
||
|
|
||
|
runIfClassNamePresent: function(selector, initFunction) {
|
||
|
var elms = document.getElementsByClassName(selector);
|
||
|
if (elms.length > 0) {
|
||
|
initFunction();
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}());;//homepage.js
|
||
|
|
||
|
var APP = APP || {};
|
||
|
|
||
|
(function () {
|
||
|
APP.Homepage = (function () {
|
||
|
return {
|
||
|
|
||
|
ui : null,
|
||
|
|
||
|
init: function () {
|
||
|
var _this = this;
|
||
|
|
||
|
//cache elements
|
||
|
this.ui = {
|
||
|
$doc: $(window),
|
||
|
$hero: $('#jumbotron'),
|
||
|
$collapse: $('.navbar-collapse')
|
||
|
}
|
||
|
|
||
|
this.addEventListeners();
|
||
|
|
||
|
},
|
||
|
|
||
|
addEventListeners: function(){
|
||
|
var _this = this;
|
||
|
|
||
|
if(APP.Utils.isMobile)
|
||
|
return;
|
||
|
|
||
|
_this.ui.$doc.scroll(function() {
|
||
|
|
||
|
//if collapseable menu is open dont do parrallax. It looks wonky. Bootstrap conflict
|
||
|
if( _this.ui.$collapse.hasClass('in'))
|
||
|
return;
|
||
|
|
||
|
var top = _this.ui.$doc.scrollTop(),
|
||
|
speedAdj = (top*0.8),
|
||
|
speedAdjOffset = speedAdj - top;
|
||
|
|
||
|
_this.ui.$hero.css('webkitTransform', 'translate(0, '+ speedAdj +'px)');
|
||
|
_this.ui.$hero.find('.container').css('webkitTransform', 'translate(0, '+ speedAdjOffset +'px)');
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
}());
|
||
|
|
||
|
}(jQuery, this));
|
||
|
|