first commit
This commit is contained in:
+124
@@ -0,0 +1,124 @@
|
||||
/**
|
||||
* Share buttons.
|
||||
*/
|
||||
|
||||
( function( $ ) {
|
||||
|
||||
$( document ).ready( function() {
|
||||
|
||||
// Blockquote
|
||||
let blockquoteLength = $( '.pk-share-buttons-blockquote' ).length;
|
||||
|
||||
if ( blockquoteLength ) {
|
||||
$( '.entry-content' ).find( 'blockquote' ).each( function( index, item ) {
|
||||
|
||||
if ( $( item ).closest( '.wp-block-embed' ).length ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( $( item ).closest( '.twitter-tweet' ).length ) {
|
||||
return;
|
||||
}
|
||||
|
||||
var text = $( this ).find( 'p' ).text();
|
||||
|
||||
if ( ! text ) {
|
||||
text = $( this ).text();
|
||||
}
|
||||
|
||||
let container = $( '.pk-share-buttons-blockquote' ).not( '.pk-share-buttons-blockquote-clone' ).clone().appendTo( item );
|
||||
|
||||
container.addClass( 'pk-share-buttons-blockquote-clone' );
|
||||
|
||||
container.find( '.pk-share-buttons-link' ).each( function( index, item ) {
|
||||
|
||||
let url = $( this ).attr( 'href' ).replace( '--SHARETEXT--', encodeURIComponent( text ) );
|
||||
|
||||
$( this ).attr( 'href', url );
|
||||
} );
|
||||
} );
|
||||
}
|
||||
|
||||
// Highlight and Share
|
||||
let highlightLength = $( '.pk-share-buttons-highlight-text' ).length;
|
||||
|
||||
if ( highlightLength ) {
|
||||
|
||||
/*
|
||||
* Events
|
||||
*/
|
||||
|
||||
$( 'body' ).on( 'mouseup', function( e ) {
|
||||
if ( ! $( e.target ).closest( '.entry-content' ).length &&
|
||||
! $( e.target ).closest( '.pk-share-buttons-wrap' ).length ) {
|
||||
highlightRemove();
|
||||
}
|
||||
} );
|
||||
|
||||
$( 'body' ).on( 'mouseup', '.entry-content', function( e ) {
|
||||
e.preventDefault();
|
||||
|
||||
highlightRemove();
|
||||
|
||||
let selection = window.getSelection();
|
||||
let text = selection.toString();
|
||||
|
||||
// Current title.
|
||||
this.title = '';
|
||||
|
||||
// Check exists text.
|
||||
if ( '' != text ) {
|
||||
highlightDisplay( text, e );;
|
||||
}
|
||||
} );
|
||||
|
||||
/*
|
||||
* Remove highlight container
|
||||
*/
|
||||
var highlightRemove = function() {
|
||||
$( '.pk-share-buttons-highlight-clone' ).remove();
|
||||
};
|
||||
|
||||
/*
|
||||
* Show highlight container
|
||||
*/
|
||||
var highlightDisplay = function( text, e ) {
|
||||
highlightRemove();
|
||||
|
||||
let container = $( '.pk-share-buttons-highlight-text' ).not( '.pk-share-buttons-highlight-clone' ).clone().appendTo( 'body' );
|
||||
|
||||
let wrapper_x = e.pageX + 10;
|
||||
let wrapper_y = e.pageY + 10;
|
||||
|
||||
container.addClass( 'pk-share-buttons-highlight-clone' );
|
||||
|
||||
container.css( { left: wrapper_x, top: wrapper_y } );
|
||||
|
||||
container.find( '.pk-share-buttons-link' ).each( function( index, item ) {
|
||||
|
||||
let url = $( this ).attr( 'href' ).replace( '--SHARETEXT--', encodeURIComponent( text ) );
|
||||
|
||||
$( this ).attr( 'href', url );
|
||||
} );
|
||||
}
|
||||
}
|
||||
|
||||
// Mobile Share
|
||||
let mobileShare = $( '.pk-share-buttons-layout-right-side, .pk-share-buttons-layout-left-side, .pk-share-buttons-layout-popup' );
|
||||
|
||||
$( mobileShare ).each( function(index, elem) {
|
||||
$( elem ).find( '.pk-share-buttons-total, .pk-share-buttons-link' ).on( 'click', function(e){
|
||||
$( 'body' ).toggleClass( 'pk-mobile-share-active' );
|
||||
});
|
||||
} );
|
||||
|
||||
// Close outside.
|
||||
$( document ).on( 'click', function(e) {
|
||||
if ( ! $( e.target ) .closest( '.pk-share-buttons-total' ).length ) {
|
||||
$( 'body' ).removeClass( 'pk-mobile-share-active' );
|
||||
}
|
||||
});
|
||||
|
||||
} );
|
||||
|
||||
} )( jQuery );
|
||||
Reference in New Issue
Block a user