Current File : /home/mdkeenpw/public_html/wp-content/themes/cargo/js/dir.hover.js |
'use strict';
window.onunload = function(){};
(function( $ ) {
$( document ).ready(function() {
// direction detection
var getHoverDir = function( $element, x, y ) {
var w = $element.width(),
h = $element.height(),
x = ( x - $element.offset().left - ( w/2 )) * ( w > h ? ( h/w ) : 1 ),
y = ( y - $element.offset().top - ( h/2 )) * ( h > w ? ( w/h ) : 1 ),
direction = Math.round( ( ( ( Math.atan2(y, x) * (180 / Math.PI) ) + 180 ) / 90 ) + 3 ) % 4;
return direction;
}
var bt_selected_gridItemEnter;
var bt_selected_gridItemLeave;
function initTilesGridHover () {
$( '.btPageWrap' ).on( 'mouseenter', '.bpgPhoto', function( event ) {
bt_selected_gridItemEnter = $( this );
bt_selected_gridItemEnter.removeClass( "in-top in-left in-right in-bottom out-top out-left out-right out-bottom" ) ;
var dir = getHoverDir( $( this ), event.pageX, event.pageY );
bt_selected_gridItemEnter.css({transition: 'none;'});
switch( dir ) {
case 0:
bt_selected_gridItemEnter.addClass('in-top');
break;
case 1:
bt_selected_gridItemEnter.addClass('in-right');
break;
case 2:
bt_selected_gridItemEnter.addClass('in-bottom');
break;
case 3:
bt_selected_gridItemEnter.addClass('in-left');
break;
default:
bt_selected_gridItemEnter.addClass('in-top');
break;
}
});
$( '.btPageWrap' ).on( 'mouseleave', '.bpgPhoto', function( event ) {
bt_selected_gridItemLeave = $( this );
var dir = getHoverDir( $( this ), event.pageX, event.pageY );
bt_selected_gridItemLeave.removeClass( "in-top in-left in-right in-bottom out-top out-left out-right out-bottom" ) ;
switch( dir ) {
case 0:
bt_selected_gridItemEnter.addClass('out-top');
break;
case 1:
bt_selected_gridItemEnter.addClass('out-right');
break;
case 2:
bt_selected_gridItemEnter.addClass('out-bottom');
break;
case 3:
bt_selected_gridItemEnter.addClass('out-left');
break;
default:
bt_selected_gridItemEnter.addClass('out-top');
break;
}
});
}
function initTilesGridHoverOld () {
$( '.btPageWrap' ).on( 'mouseenter', '.bpgPhoto', function( event ) {
$( '.bpgPhoto' ).removeClass( 'selectedGridItem' );
bt_selected_gridItemEnter = $( this );
var dir = getHoverDir( $( this ), event.pageX, event.pageY );
bt_selected_gridItemEnter.find( '.captionPane' ).css({transition: 'none;'});
//console.log (dir);
switch( dir ) {
case 0:
bt_selected_gridItemEnter.find( '.captionPane' ).css({
transition: 'none',
transform: 'translateY(-100%) translateX(0)',
MozTransform: 'translateY(-100%) translateX(0)',
WebkitTransform: 'translateY(-100%) translateX(0)',
msTransform: 'translateY(-100%) translateX(0)'
});
break;
case 1:
bt_selected_gridItemEnter.find( '.captionPane' ).css({
transition: 'none',
transform: 'translateX(100%) translateY(0)',
MozTransform: 'translateX(100%) translateY(0)',
WebkitTransform: 'translateX(100%) translateY(0)',
msTransform: 'translateX(100%) translateY(0)'
});
break;
case 2:
bt_selected_gridItemEnter.find( '.captionPane' ).css({
transition: 'none',
transform: 'translateY(100%) translateX(0)',
MozTransform: 'translateY(100%) translateX(0)',
WebkitTransform: 'translateY(100%) translateX(0)',
msTransform: 'translateY(100%) translateX(0)'
});
break;
case 3:
bt_selected_gridItemEnter.find( '.captionPane' ).css({
transition: 'none',
transform: 'translateX(-100%) translateY(0)',
MozTransform: 'translateX(-100%) translateY(0)',
WebkitTransform: 'translateX(-100%) translateY(0)',
msTransform: 'translateX(-100%) translateY(0)'
});
break;
default:
break;
}
bt_selected_gridItemEnter.addClass( 'selectedGridItem' );
setTimeout(function() {
bt_selected_gridItemEnter.find( '.captionPane' ).css({
transition: 'all 300ms ease',
transform: 'translateX(0) translateY(0)',
MozTransform: 'translateX(0) translateY(0)',
WebkitTransform: 'translateX(0) translateY(0)',
msTransform: 'translateX(0) translateY(0)'
});
}, 20 );
});
$( '.btPageWrap' ).on( 'mouseleave', '.bpgPhoto', function( event ) {
bt_selected_gridItemLeave = $( this );
var dir = getHoverDir( $( this ), event.pageX, event.pageY );
$( '.bpgPhoto' ).removeClass( 'selectedGridItem' );
switch( dir ) {
case 0:
bt_selected_gridItemLeave.find( '.captionPane' ).css({
transform: 'translateY(-100%) translateX(0)',
MozTransform: 'translateY(-100%) translateX(0)',
WebkitTransform: 'translateY(-100%) translateX(0)',
msTransform: 'translateY(-100%) translateX(0)'
});
break;
case 1:
bt_selected_gridItemLeave.find( '.captionPane' ).css({
transform: 'translateX(100%) translateY(0)',
MozTransform: 'translateX(100%) translateY(0)',
WebkitTransform: 'translateX(100%) translateY(0)',
msTransform: 'translateX(100%) translateY(0)'
});
break;
case 2:
bt_selected_gridItemLeave.find( '.captionPane' ).css({
transform: 'translateY(100%) translateX(0)',
MozTransform: 'translateY(100%) translateX(0)',
WebkitTransform: 'translateY(100%) translateX(0)',
msTransform: 'translateY(100%) translateX(0)'
});
break;
case 3:
bt_selected_gridItemLeave.find( '.captionPane' ).css({
transform: 'translateX(-100%) translateY(0)',
MozTransform: 'translateX(-100%) translateY(0)',
WebkitTransform: 'translateX(-100%) translateY(0)',
msTransform: 'translateX(-100%) translateY(0)'
});
break;
default:
bt_selected_gridItemLeave.find( '.captionPane' ).css({transform: 'translateY(-100%)'});
break;
}
});
}
initTilesGridHover();
});
})( jQuery );