/** ************************************* * Core Helpers * * @package: https://github.com/xizon/boot-helpers * @version: 0.1.7 * @last update: May 25, 2023 * @author: UIUX Lab * @license: MIT * ************************************* */ /* //+++++++++++++++++++++++++++++++++++++++++++ // Page load //+++++++++++++++++++++++++++++++++++++++++++ __( document ).ready( function() { //do something }); __( 'body' ).loader({ imagesSelector: 'body img', videosSelector: 'body video', startEvent: function() { //do something console.log( '=> loading.' ); }, progressEvent: function(percent) { //do something console.log( '=> progress: ' + percent + '%' ); }, endEvent: function() { console.log( '=> loaded!!!' ); //do something } }); //+++++++++++++++++++++++++++++++++++++++++++ // Dom demos //+++++++++++++++++++++++++++++++++++++++++++ __( '.demo' ).remove(); __( '.demo' ).empty(); __( '.demo' ).show(); __( '.demo' ).hide(); __( '.demo' ).get(-1); //returns all elements __( '.demo' ).get(0); //returns someone element __( '.demo' ).len(); //returns length of elements __( '.demo' ).addClass( 'class-3' ); __( '.demo, .demo2' ).addClass( 'class-4' ); __( '.demo' ).find( 'li' ).addClass( 'class-1 class-2' ); __( '.demo' ).find( 'li' ).removeClass( 'class-2' ); __( '.demo' ).find( '> .demo2' ).addClass( 'class-3' ); __( '.demo' ).find( '> .demo2' ).find( 'li' ).addClass( 'class-3-2' ); __( '.demo' ).closest( '.container' ).addClass( 'class-4' ); __( '.demo' ).css({ 'background': '#f00', 'font-size': '18px' }); __( '#demo' ).css( 'background-color', '#f60' ); __( '.demo' ).data( 'bg', 'red' ); __( '.demo' ).attr( 'disabled', 'disabled' ); __( '.demo' ).width( 300 ); __( '.menu li:first-child' ).width( "50%" ); if( __( '.demo' ).data( 'activated' ) === null ) { //do something... } if( __( '.demo' ).attr( 'data-activated' ) === null ) { //do something... } __( '.menu li' ).eq(1).append( 'after'); __( '.menu li' ).eq(1).prepend( 'before'); __( '.menu li' ).first().before( '
  • (first)before
  • '); __( '.menu li' ).last().after( '
  • (last)after
  • '); __( 'h1' ).wrapInner( '' ); √√ __( 'h1' ).text( 'New H1' ); __( '.demo1' ).prev().addClass( 'prev' ); __( '.demo2' ).next().addClass( 'next' ); __( '.demo3' ).parent().addClass( 'parent' ); __( '.menu' ).parents().addClass( 'all-parents' ); __( '.demo' ).children().addClass( 'children-all' ); __( '.class-1' ).siblings().addClass( 'class-siblings' ); __( '.demo1' ).prev( 'ul' ).addClass( 'prev' ); __( '.demo2' ).next( 'ul' ).addClass( 'next' ); __( '.demo3' ).parent( 'ul' ).addClass( 'parent' ); __( '.menu' ).parents( 'ul' ).addClass( 'all-parents' ); __( '.demo' ).children( '.demo-children2' ).addClass( 'children-single' ); __( '.class-1' ).siblings( 'ul' ).addClass( 'class-siblings' ); __( '.class-1' ).not( '.class-2' ).addClass( 'class-not' ); __( '.class-1' ).filter( '.class-2' ).addClass( 'class-filter' ); __( '.demo' ).trigger( 'click' ); __( '.demo' ).toggleClass( 'class-toggle-1 class-toggle-2' ); //append HTML Element const htmlObject = document.createElement('div'); htmlObject.innerHTML = 'after'; __( '.menu li' ).eq(1).append( htmlObject.firstChild ); //clone HTML Element const cloneHTML = __( '.uix-menu__container' ).clone(); __( cloneHTML ).addClass( 'is-mobile' ); __( 'body' ).prependTo( cloneHTML ); __( 'body' ).appendTo( cloneHTML ); //+++++++++++++++++++++++++++++++++++++++++++ // Click event demos //+++++++++++++++++++++++++++++++++++++++++++ __( '.menu li a' ).off( 'click' ).one( 'click', function( e ) { e.preventDefault(); console.log( 'This will be clicked only once' ); }); __( '.menu li' ).off( 'click' ).on( 'click', function( e ) { console.log('e: ', e); console.log('this: ', this); console.log('index(): ', __( this ).index()); console.log('attr(class): ', __( this ).attr( 'class' )); __( this ).addClass( 'new-class' ) }); __( document ).off( 'click', '.menu li' ); __( document ).on( 'click', '.menu li', function( e ) { console.log('e: ', e); console.log('this: ', this); console.log('index(): ', __( this ).index()); console.log('attr(class): ', __( this ).attr( 'class' )); __( this ).addClass( 'new-class' ) }); __( '#imghere' ).off( 'click', imgFn); __( '#imghere' ).on( 'click', imgFn); function imgFn() { console.log( 'imgFn' ); } //+++++++++++++++++++++++++++++++++++++++++++ // Retrieve data demos //+++++++++++++++++++++++++++++++++++++++++++ console.log( '

    content: ' + __( 'h1' ).html()); console.log( '

    content: ' + __( 'h1' ).text()); console.log( 'length of .menu li: ' + __( '.menu li' ).len() ); console.log( 'length of #none: ' + __( '#none' ).len() ); console.log( 'width(): ' + __( '.demo' ).width() ); console.log( 'outerWidth(): ' + __( '.demo' ).outerWidth() ); console.log( 'outerWidth( true ): ' + __( '.demo' ).outerWidth(true) ); console.log( 'height(): ' + __( '.demo' ).height() ); console.log( 'outerHeight(): ' + __( '.demo' ).outerHeight() ); console.log( 'outerHeight( true ): ' + __( '.demo' ).outerHeight(true) ); console.log( 'document h: ', __( document ).height() ); console.log( 'document w: ', __( document ).width() ); console.log( 'window h: ', __( window ).height() ); console.log( 'window h: ', __( window ).width() ); console.log( 'window scrollTop: ', __( window ).scrollTop() ); console.log( 'window scrollLeft: ', __( window ).scrollLeft() ); console.log( 'data: [data-bg] value: ' + __( '.demo' ).data( 'bg' ) ); console.log( 'attr: [disabled] value: ' + __( '.demo' ).attr( 'disabled' ) ); console.log( 'allAttrs(): ', __( '.demo' ).allAttrs() ); console.log( __( '.demo' ).hasClass( 'class-1' ) ); console.log( __( 'h1' ).offset() ); console.log( __( 'h1' ).position() ); console.log( __( '.demo' ).maxDimension() ); console.log( __( '.menu li:nth-child(2)' ).index() ); // Traverse all attribute names and values const allAttrs = __( '#demo' ).allAttrs(); for (let key in allAttrs) { console.log( key + ' = ' + allAttrs[key] ); } //+++++++++++++++++++++++++++++++++++++++++++ // Loop demos //+++++++++++++++++++++++++++++++++++++++++++ __( '.menu li' ).each( function( index, curSelector ) { console.log( index + ' : ' ); console.log( this ); this.style.background = '#333'; __( this ).css({ 'background': '#f00', 'font-size': '18px' }); //Nested `each() ` //__( curSelector) are generally used for exact each selector __( curSelector ).find( 'ul > li' ).each( function( index ) { __( this ).attr( 'id', 'li-id-' + index ); }); //Nested `eq()` for (let k = 0; k li' ).eq(k).css({ 'font-size' : '18px' }); __( curSelector + ' ul > li:nth-child('+k+') > a' ).css({ 'font-size' : '18px' }); } }); //+++++++++++++++++++++++++++++++++++++++++++ // Animation demos //+++++++++++++++++++++++++++++++++++++++++++ __( '.demo' ).fadeOut(1000, function(){ setTimeout( function() { __( '.demo' ).fadeIn(3000); },1000 ); }); __( '.menu' ).animate( 'marginLeft', 0, 100, 'px', 1500, 'ease-out', function(){ console.log(this.className); } ); __( '.menu' ).animate( 'marginTop', 0, 200, 'px', 1500, 'ease-out', function(){ console.log(this.className); } ); //+++++++++++++++++++++++++++++++++++++++++++ // AJAX demos //+++++++++++++++++++++++++++++++++++++++++++ __.ajax({ url: 'https://restcountries.com/v2/name/Argentina', method: 'GET', complete: function( data ) { console.log( '=> ajax ok!' ); console.log( data ); } }); //+++++++++++++++++++++++++++++++++++++++++++ // Form demos //+++++++++++++++++++++++++++++++++++++++++++ __( '#input-name-1' ).val( ); //form control: `` __( '#select-name-1' ).val( 'value-3' ); //form control: `