wp_back/wp-content/plugins/slider-bws/bws_menu/js/bws_tooltip.js

111 lines
4.1 KiB
JavaScript
Raw Normal View History

2024-05-20 15:37:46 +03:00
/**
* BWS tooltip function
*/
(function($) {
"use strict";
$( document ).ready(
function() {
jQuery.bwsTooltip = function( pointer_options ) {
var pointer_buttons = pointer_options['buttons'];
/* extend pointer options - add close button */
pointer_options = $.extend(
pointer_options,
{
buttons: function(event, t) {
var button = '';
/* check and add dismiss-type buttons */
for ( var but in pointer_buttons ) {
if ( typeof pointer_buttons[ but ]['type'] != 'undefined' && pointer_buttons[ but ]['type'] == 'dismiss' && typeof pointer_buttons[ but ]['text'] != 'undefined' && pointer_buttons[ but ]['text'] != '' ) {
button += '<a style="margin:0px 5px 2px;" class="button-secondary">' + pointer_buttons[ but ]['text'] + '</a>';
}
}
button = jQuery( button );
button.on(
'click.pointer',
function () {
t.element.pointer( 'close' );
}
);
return button;
},
/* add ajax dismiss functionality */
close : $.proxy(
function () {
if ( pointer_options['actions']['onload'] == true ) {
$.post( ajaxurl, this );
}
},
{
pointer: pointer_options['tooltip_id'],
action: 'dismiss-wp-pointer'
}
)
}
);
/* function to display pointer */
function displayPointer( cssSelector ) {
cssSelector.pointer( pointer_options ).pointer(
{
pointerClass: 'wp-pointer ' + pointer_options["tooltip_id"],
content: pointer_options['content'],
position: {
edge: pointer_options['position']['edge'],
align: pointer_options['position']['align'],
},
}
).pointer( 'open' );
/* display buttons that are not type of dismiss */
for ( var but in pointer_buttons ) {
if ( typeof pointer_buttons[ but ]['type'] != 'undefined' && pointer_buttons[ but ]['type'] != 'dismiss' && typeof pointer_buttons[ but ]['text'] != 'undefined' && pointer_buttons[ but ]['text'] != '' ) {
$( '.' + pointer_options['tooltip_id'] + ' .button-secondary' ).first().before(
'<a class="button-primary" style="margin-right: 5px;" ' +
( ( pointer_buttons[ but ]['type'] == 'link' && typeof pointer_buttons[ but ]['link'] != 'undefined' && pointer_buttons[ but ]['link'] != '') ? 'target="_blank" href="' + pointer_buttons[ but ]['link'] + '"' : '' )
+ '>' + pointer_buttons[ but ]['text'] + '</a>'
);
};
}
/* adjust position of pointer */
var topPos,
leftPos,
pointerZindex;
topPos = parseInt( $( "." + pointer_options["tooltip_id"] ).css( "top" ) ) + parseInt( pointer_options['position']['pos-top'] );
leftPos = parseInt( $( "." + pointer_options["tooltip_id"] ).css( "left" ) ) + parseInt( pointer_options['position']['pos-left'] );
if ( pointer_options['position']['align'] == 'left' ) {
leftPos += cssSelector.outerWidth() / 2;
};
$( "." + pointer_options["tooltip_id"] ).css( { "top": topPos + "px", "left": leftPos + "px" } );
/* adjust z-index if need */
pointerZindex = parseInt( $( "." + pointer_options["tooltip_id"] ).css( "z-index" ) );
if ( pointerZindex != pointer_options['position']['zindex'] ) {
$( "." + pointer_options["tooltip_id"] ).css( { "z-index": pointer_options['position']['zindex'] } );
}
}
/* display pointer for the first time */
if ( pointer_options['actions']['onload'] ) {
if ( pointer_options['set_timeout'] > 0 ) {
var settime = parseInt( pointer_options['set_timeout'] );
setTimeout(
function() {
displayPointer( $( pointer_options['css_selector'] ) );
},
settime
);
} else {
displayPointer( $( pointer_options['css_selector'] ) );
}
}
/* display pointer when clicked on selector */
if ( pointer_options['actions']['click'] ) {
$( pointer_options['css_selector'] ).click(
function () {
displayPointer( $( this ) );
}
);
}
};
}
)
})( jQuery );