core/skin/m2.yurecnt.ru/js/themejs/pathLoader.js

199 lines
5.2 KiB
JavaScript

/*!!
* classie - class helper functions
* from bonzo https://github.com/ded/bonzo
*
* classie.has( elem, 'my-class' ) -> true/false
* classie.add( elem, 'my-new-class' )
* classie.remove( elem, 'my-unwanted-class' )
* classie.toggle( elem, 'my-class' )
*/
/*jshint browser: true, strict: true, undef: true */
/*global define: false */
( function( window ) {
'use strict';
// class helper functions from bonzo https://github.com/ded/bonzo
function classReg( className ) {
return new RegExp("(^|\\s+)" + className + "(\\s+|$)");
}
// classList support for class management
// altho to be fair, the api sucks because it won't accept multiple classes at once
var hasClass, addClass, removeClass;
if ( 'classList' in document.documentElement ) {
hasClass = function( elem, c ) {
return elem.classList.contains( c );
};
addClass = function( elem, c ) {
elem.classList.add( c );
};
removeClass = function( elem, c ) {
elem.classList.remove( c );
};
}
else {
hasClass = function( elem, c ) {
return classReg( c ).test( elem.className );
};
addClass = function( elem, c ) {
if ( !hasClass( elem, c ) ) {
elem.className = elem.className + ' ' + c;
}
};
removeClass = function( elem, c ) {
elem.className = elem.className.replace( classReg( c ), ' ' );
};
}
function toggleClass( elem, c ) {
var fn = hasClass( elem, c ) ? removeClass : addClass;
fn( elem, c );
}
var classie = {
// full names
hasClass: hasClass,
addClass: addClass,
removeClass: removeClass,
toggleClass: toggleClass,
// short names
has: hasClass,
add: addClass,
remove: removeClass,
toggle: toggleClass
};
// transport
if ( typeof define === 'function' && define.amd ) {
// AMD
define( classie );
} else {
// browser global
window.classie = classie;
}
})( window );
/**
* pathLoader.js v1.0.0
* http://www.codrops.com
*
* Licensed under the MIT license.
* http://www.opensource.org/licenses/mit-license.php
*
* Copyright 2014, Codrops
* http://www.codrops.com
*/
// ( function( window ) {
// 'use strict';
// function PathLoader( el ) {
// this.el = el;
// // clear stroke
// this.el.style.strokeDasharray = this.el.style.strokeDashoffset = this.el.getTotalLength();
// }
// PathLoader.prototype._draw = function( val ) {
// this.el.style.strokeDashoffset = this.el.getTotalLength() * ( 1 - val );
// }
// PathLoader.prototype.setProgress = function( val, callback ) {
// this._draw(val);
// if( callback && typeof callback === 'function' ) {
// // give it a time (ideally the same like the transition time) so that the last progress increment animation is still visible.
// setTimeout( callback, 200 );
// }
// }
// PathLoader.prototype.setProgressFn = function( fn ) {
// if( typeof fn === 'function' ) { fn( this ); }
// }
// // add to global namespace
// window.PathLoader = PathLoader;
// })( window );
// (function() {
// var $width = jQuery(this).width();
// var support = { animations : Modernizr.cssanimations },
// container = document.getElementById( 'wrapper' ),
// //container = ('body'),
// header = container.querySelector( '.ip-header' );
// var loader = new PathLoader( document.getElementById( 'ip-loader-circle' ) );
// var animEndEventNames = { 'WebkitAnimation' : 'webkitAnimationEnd', 'OAnimation' : 'oAnimationEnd', 'msAnimation' : 'MSAnimationEnd', 'animation' : 'animationend' };
// // animation end event name
// var animEndEventName = animEndEventNames[ Modernizr.prefixed( 'animation' ) ];
// function init() {
// var onEndInitialAnimation = function() {
// if( support.animations ) {
// this.removeEventListener( animEndEventName, onEndInitialAnimation );
// }
// startLoading();
// };
// // disable scrolling
// window.addEventListener( 'scroll', noscroll );
// // initial animation
// classie.add( container, 'loading' );
// if( support.animations ) {
// container.addEventListener( animEndEventName, onEndInitialAnimation );
// }
// else {
// onEndInitialAnimation();
// }
// }
// function startLoading() {
// // simulate loading something..
// var simulationFn = function(instance) {
// var progress = 0,
// interval = setInterval( function() {
// progress = Math.min( progress + Math.random() * 0.1, 1 );
// instance.setProgress( progress );
// // reached the end
// if( progress === 1 ) {
// classie.remove( container, 'loading' );
// classie.add( container, 'loaded' );
// clearInterval( interval );
// var onEndHeaderAnimation = function(ev) {
// if( support.animations ) {
// if( ev.target !== header ) return;
// this.removeEventListener( animEndEventName, onEndHeaderAnimation );
// }
// classie.add( document.body, 'layout-switch' );
// window.removeEventListener( 'scroll', noscroll );
// };
// if( support.animations ) {
// header.addEventListener( animEndEventName, onEndHeaderAnimation );
// }
// else {
// onEndHeaderAnimation();
// }
// }
// }, 80 );
// };
// loader.setProgressFn( simulationFn );
// }
// function noscroll() {
// window.scrollTo( 0, 0 );
// }
// init();
// })();