Update Koneko integration
This commit is contained in:
221
resources/public/vendor/hoverdir/jquery.hoverdir.js
vendored
Normal file
221
resources/public/vendor/hoverdir/jquery.hoverdir.js
vendored
Normal file
@ -0,0 +1,221 @@
|
||||
/**
|
||||
* jquery.hoverdir.js v1.1.0
|
||||
* http://www.codrops.com
|
||||
*
|
||||
* Licensed under the MIT license.
|
||||
* http://www.opensource.org/licenses/mit-license.php
|
||||
*
|
||||
* Copyright 2012, Codrops
|
||||
* http://www.codrops.com
|
||||
*/
|
||||
;( function( $, window, undefined ) {
|
||||
|
||||
'use strict';
|
||||
|
||||
$.HoverDir = function( options, element ) {
|
||||
|
||||
this.$el = $( element );
|
||||
this._init( options );
|
||||
|
||||
};
|
||||
|
||||
// the options
|
||||
$.HoverDir.defaults = {
|
||||
speed : 300,
|
||||
easing : 'ease',
|
||||
hoverDelay : 0,
|
||||
inverse : false,
|
||||
hoverElem: '.thumb-info-wrapper-overlay'
|
||||
};
|
||||
|
||||
$.HoverDir.prototype = {
|
||||
|
||||
_init : function( options ) {
|
||||
|
||||
// options
|
||||
this.options = $.extend( true, {}, $.HoverDir.defaults, options );
|
||||
// transition properties
|
||||
this.transitionProp = 'all ' + this.options.speed + 'ms ' + this.options.easing;
|
||||
// support for CSS transitions
|
||||
this.support = true;
|
||||
// load the events
|
||||
this._loadEvents();
|
||||
|
||||
},
|
||||
_loadEvents : function() {
|
||||
|
||||
var self = this;
|
||||
|
||||
this.$el.on( 'mouseenter.hoverdir, mouseleave.hoverdir', function( event ) {
|
||||
|
||||
var $el = $( this ),
|
||||
$hoverElem = $el.find( self.options.hoverElem ),
|
||||
direction = self._getDir( $el, { x : event.pageX, y : event.pageY } ),
|
||||
styleCSS = self._getStyle( direction );
|
||||
|
||||
if( event.type === 'mouseenter' ) {
|
||||
|
||||
$hoverElem.hide().css( styleCSS.from );
|
||||
clearTimeout( self.tmhover );
|
||||
|
||||
self.tmhover = setTimeout( function() {
|
||||
|
||||
$hoverElem.show( 0, function() {
|
||||
|
||||
var $el = $( this );
|
||||
if( self.support ) {
|
||||
$el.css( 'transition', self.transitionProp );
|
||||
}
|
||||
self._applyAnimation( $el, styleCSS.to, self.options.speed );
|
||||
|
||||
} );
|
||||
|
||||
|
||||
}, self.options.hoverDelay );
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
if( self.support ) {
|
||||
$hoverElem.css( 'transition', self.transitionProp );
|
||||
}
|
||||
clearTimeout( self.tmhover );
|
||||
self._applyAnimation( $hoverElem, styleCSS.from, self.options.speed );
|
||||
|
||||
}
|
||||
|
||||
} );
|
||||
|
||||
},
|
||||
// credits : http://stackoverflow.com/a/3647634
|
||||
_getDir : function( $el, coordinates ) {
|
||||
|
||||
// the width and height of the current div
|
||||
var w = $el.width(),
|
||||
h = $el.height(),
|
||||
|
||||
// calculate the x and y to get an angle to the center of the div from that x and y.
|
||||
// gets the x value relative to the center of the DIV and "normalize" it
|
||||
x = ( coordinates.x - $el.offset().left - ( w/2 )) * ( w > h ? ( h/w ) : 1 ),
|
||||
y = ( coordinates.y - $el.offset().top - ( h/2 )) * ( h > w ? ( w/h ) : 1 ),
|
||||
|
||||
// the angle and the direction from where the mouse came in/went out clockwise (TRBL=0123);
|
||||
// first calculate the angle of the point,
|
||||
// add 180 deg to get rid of the negative values
|
||||
// divide by 90 to get the quadrant
|
||||
// add 3 and do a modulo by 4 to shift the quadrants to a proper clockwise TRBL (top/right/bottom/left) **/
|
||||
direction = Math.round( ( ( ( Math.atan2(y, x) * (180 / Math.PI) ) + 180 ) / 90 ) + 3 ) % 4;
|
||||
|
||||
return direction;
|
||||
|
||||
},
|
||||
_getStyle : function( direction ) {
|
||||
|
||||
var fromStyle, toStyle,
|
||||
slideFromTop = { left : '0px', top : '-100%' },
|
||||
slideFromBottom = { left : '0px', top : '100%' },
|
||||
slideFromLeft = { left : '-100%', top : '0px' },
|
||||
slideFromRight = { left : '100%', top : '0px' },
|
||||
slideTop = { top : '0px' },
|
||||
slideLeft = { left : '0px' };
|
||||
|
||||
switch( direction ) {
|
||||
case 0:
|
||||
// from top
|
||||
fromStyle = !this.options.inverse ? slideFromTop : slideFromBottom;
|
||||
toStyle = slideTop;
|
||||
break;
|
||||
case 1:
|
||||
// from right
|
||||
fromStyle = !this.options.inverse ? slideFromRight : slideFromLeft;
|
||||
toStyle = slideLeft;
|
||||
break;
|
||||
case 2:
|
||||
// from bottom
|
||||
fromStyle = !this.options.inverse ? slideFromBottom : slideFromTop;
|
||||
toStyle = slideTop;
|
||||
break;
|
||||
case 3:
|
||||
// from left
|
||||
fromStyle = !this.options.inverse ? slideFromLeft : slideFromRight;
|
||||
toStyle = slideLeft;
|
||||
break;
|
||||
};
|
||||
|
||||
return { from : fromStyle, to : toStyle };
|
||||
|
||||
},
|
||||
// apply a transition or fallback to jquery animate based on Modernizr.csstransitions support
|
||||
_applyAnimation : function( el, styleCSS, speed ) {
|
||||
|
||||
$.fn.applyStyle = this.support ? $.fn.css : $.fn.animate;
|
||||
el.stop().applyStyle( styleCSS, $.extend( true, [], { duration : speed + 'ms' } ) );
|
||||
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
var logError = function( message ) {
|
||||
|
||||
if ( window.console ) {
|
||||
|
||||
window.console.error( message );
|
||||
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
$.fn.hoverdir = function( options ) {
|
||||
|
||||
var instance = $.data( this, 'hoverdir' );
|
||||
|
||||
if ( typeof options === 'string' ) {
|
||||
|
||||
var args = Array.prototype.slice.call( arguments, 1 );
|
||||
|
||||
this.each(function() {
|
||||
|
||||
if ( !instance ) {
|
||||
|
||||
logError( "cannot call methods on hoverdir prior to initialization; " +
|
||||
"attempted to call method '" + options + "'" );
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
if ( !$.isFunction( instance[options] ) || options.charAt(0) === "_" ) {
|
||||
|
||||
logError( "no such method '" + options + "' for hoverdir instance" );
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
instance[ options ].apply( instance, args );
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
this.each(function() {
|
||||
|
||||
if ( instance ) {
|
||||
|
||||
instance._init();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
instance = $.data( this, 'hoverdir', new $.HoverDir( options, this ) );
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
return instance;
|
||||
|
||||
};
|
||||
|
||||
} )( jQuery, window );
|
Reference in New Issue
Block a user