Файл: style/touch/js/pushy.js
Строк: 272
<?php
/*! Pushy - v0.9.2 - 2014-9-13
* Pushy is a responsive off-canvas navigation menu using CSS transforms & transitions.
* https://github.com/christophery/pushy/
* by Christopher Yee */
$(function() {
var pushy = $('.cont_left'), //menu css class
body = $('body'),
container = $('.cont_center'), //container css class
push = $('.push'), //css class to add pushy capability
siteOverlay = $('.site-overlay'), //site overlay
pushyClass = "pushy-left pushy-open", //menu position & menu open class
pushyActiveClass = "pushy-active", //css class to toggle site overlay
containerClass = "container-push", //container open class
pushClass = "push-push", //css class to add pushy capability
menuBtn = $('.menu-btn, .cont_left a'), //css classes to toggle the menu
menuSpeed = 200, //jQuery fallback menu speed
menuWidth = pushy.width() + "px"; //jQuery fallback menu width
function togglePushy(){
body.toggleClass(pushyActiveClass); //toggle site overlay
pushy.toggleClass(pushyClass);
container.toggleClass(containerClass);
push.toggleClass(pushClass); //css class to add pushy capability
}
function openPushyFallback(){
body.addClass(pushyActiveClass);
pushy.animate({left: "0px"}, menuSpeed);
container.animate({left: menuWidth}, menuSpeed);
push.animate({left: menuWidth}, menuSpeed); //css class to add pushy capability
}
function closePushyFallback(){
body.removeClass(pushyActiveClass);
pushy.animate({left: "-" + menuWidth}, menuSpeed);
container.animate({left: "0px"}, menuSpeed);
push.animate({left: "0px"}, menuSpeed); //css class to add pushy capability
}
//checks if 3d transforms are supported removing the modernizr dependency
cssTransforms3d = (function csstransforms3d(){
var el = document.createElement('p'),
supported = false,
transforms = {
'webkitTransform':'-webkit-transform',
'OTransform':'-o-transform',
'msTransform':'-ms-transform',
'MozTransform':'-moz-transform',
'transform':'transform'
};
// Add it to the body to get the computed style
document.body.insertBefore(el, null);
for(var t in transforms){
if( el.style[t] !== undefined ){
el.style[t] = 'translate3d(1px,1px,1px)';
supported = window.getComputedStyle(el).getPropertyValue(transforms[t]);
}
}
document.body.removeChild(el);
return (supported !== undefined && supported.length > 0 && supported !== "none");
})();
if(cssTransforms3d){
//toggle menu
menuBtn.click(function() {
togglePushy();
});
//close menu when clicking site overlay
siteOverlay.click(function(){
togglePushy();
});
}else{
//jQuery fallback
pushy.css({left: "-" + menuWidth}); //hide menu by default
container.css({"overflow-x": "hidden"}); //fixes IE scrollbar issue
//keep track of menu state (open/close)
var state = true;
//toggle menu
menuBtn.click(function() {
if (state) {
openPushyFallback();
state = false;
} else {
closePushyFallback();
state = true;
}
});
//close menu when clicking site overlay
siteOverlay.click(function(){
if (state) {
openPushyFallback();
state = false;
} else {
closePushyFallback();
state = true;
}
});
}
});
$(function() {
var pushyR = $('.cont_right'), //menu css class
body = $('body'),
container = $('.cont_center'), //container css class
push = $('.push'), //css class to add pushyR capability
siteOverlay = $('.site-overlay2'), //site overlay
pushyRClass = "pushyR-right pushyR-open", //menu position & menu open class
pushyRActiveClass = "pushyR-active", //css class to toggle site overlay
containerClass = "container-push_2", //container open class
pushClass = "push-push_2", //css class to add pushyR capability
menuBtn = $('.menu-btn_2, .cont_right a'), //css classes to toggle the menu
menuSpeed = 200, //jQuery fallback menu speed
menuWidth = pushyR.width() + "px"; //jQuery fallback menu width
function togglepushyR(){
body.toggleClass(pushyRActiveClass); //toggle site overlay
pushyR.toggleClass(pushyRClass);
container.toggleClass(containerClass);
push.toggleClass(pushClass); //css class to add pushyR capability
}
function openpushyRFallback(){
body.addClass(pushyRActiveClass);
pushyR.animate({right: "0px"}, menuSpeed);
container.animate({right: menuWidth}, menuSpeed);
push.animate({right: menuWidth}, menuSpeed); //css class to add pushyR capability
}
function closepushyRFallback(){
body.removeClass(pushyRActiveClass);
pushyR.animate({right: "-" + menuWidth}, menuSpeed);
container.animate({right: "0px"}, menuSpeed);
push.animate({right: "0px"}, menuSpeed); //css class to add pushyR capability
}
//checks if 3d transforms are supported removing the modernizr dependency
cssTransforms3d = (function csstransforms3d(){
var el = document.createElement('p'),
supported = false,
transforms = {
'webkitTransform':'-webkit-transform',
'OTransform':'-o-transform',
'msTransform':'-ms-transform',
'MozTransform':'-moz-transform',
'transform':'transform'
};
// Add it to the body to get the computed style
document.body.insertBefore(el, null);
for(var t in transforms){
if( el.style[t] !== undefined ){
el.style[t] = 'translate3d(1px,1px,1px)';
supported = window.getComputedStyle(el).getPropertyValue(transforms[t]);
}
}
document.body.removeChild(el);
return (supported !== undefined && supported.length > 0 && supported !== "none");
})();
if(cssTransforms3d){
//toggle menu
menuBtn.click(function() {
togglepushyR();
});
//close menu when clicking site overlay
siteOverlay.click(function(){
togglepushyR();
});
}else{
//jQuery fallback
pushyR.css({left: "-" + menuWidth}); //hide menu by default
container.css({"overflow-x": "hidden"}); //fixes IE scrollbar issue
//keep track of menu state (open/close)
var state = true;
//toggle menu
menuBtn.click(function() {
if (state) {
openpushyRFallback();
state = false;
} else {
closepushyRFallback();
state = true;
}
});
//close menu when clicking site overlay
siteOverlay.click(function(){
if (state) {
openpushyRFallback();
state = false;
} else {
closepushyRFallback();
state = true;
}
});
}
});
?>