芝麻web文件管理V1.00
编辑当前文件:/var/www/cognitio.in/wp-content/plugins/Ultimate_VC_Addons/assets/js/vhparallax.js
/* Plugin: jQuery Parallax Version 1.1.3 Author: Ian Lunn Twitter: @IanLunn Author URL: http://www.ianlunn.co.uk/ Plugin URL: http://www.ianlunn.co.uk/plugins/jquery-parallax/ Dual licensed under the MIT and GPL licenses: http://www.opensource.org/licenses/mit-license.php http://www.gnu.org/licenses/gpl.html */ ( function ( $ ) { const $window = jQuery( window ); let windowHeight = $window.height(); $window.resize( function () { windowHeight = $window.height(); } ); jQuery.fn.vparallax = function ( xpos, speedFactor, outerHeight ) { const $this = jQuery( this ); let getHeight; let firstTop; const paddingTop = 0; //get the starting position of each element to have parallax applied to it /*$this.each(function(){ //firstTop = $this.offset().top; });*/ if ( outerHeight ) { getHeight = function ( jqo ) { return jqo.outerHeight( true ); }; } else { getHeight = function ( jqo ) { return jqo.height(); }; } // setup defaults if arguments aren't specified if ( arguments.length < 1 || xpos === null ) xpos = '50%'; if ( arguments.length < 2 || speedFactor === null ) speedFactor = 0.5; if ( arguments.length < 3 || outerHeight === null ) outerHeight = true; //speedFactor = (jQuery(this).data('parallax_sense'))/100; // function to be called whenever the window is scrolled or resized function update() { const pos = $window.scrollTop(); $this.each( function () { firstTop = jQuery( this ).offset().top; const $element = jQuery( this ); const top = $element.offset().top; const height = getHeight( $element ); // Check if totally above or totally below viewport if ( top + height < pos || top > pos + windowHeight ) { return; } let f = Math.round( ( firstTop - pos ) * speedFactor ); //if(firstTop >= windowHeight){ //f = -f-(speedFactor*windowHeight); //}else{ f = -f; //} if ( jQuery( this ).parent().hasClass( 'vcpb-mlvp-jquery' ) ) var is_img_parallax_disable_on_mobile = jQuery( this ) .parent() .parent() .data( 'img-parallax-mobile-disable' ) .toString(); else var is_img_parallax_disable_on_mobile = jQuery( this ) .parent() .data( 'img-parallax-mobile-disable' ) .toString(); if ( ! /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent ) ) var is_mobile = 'false'; else var is_mobile = 'true'; if ( is_img_parallax_disable_on_mobile == 'true' && is_mobile == 'true' ) var disable_row_parallax_effect = 'true'; else var disable_row_parallax_effect = 'false'; if ( disable_row_parallax_effect == 'false' ) { //f = -f; jQuery( this ).css( 'backgroundPosition', xpos + ' ' + f + 'px' ); } } ); } $window.bind( 'scroll', update ).resize( update ); update(); }; jQuery.fn.hparallax = function ( xpos, speedFactor, outerHeight ) { const $this = jQuery( this ); let getHeight; let firstTop; const paddingTop = 0; if ( outerHeight ) { getHeight = function ( jqo ) { return jqo.outerHeight( true ); }; } else { getHeight = function ( jqo ) { return jqo.height(); }; } // setup defaults if arguments aren't specified if ( arguments.length < 1 || xpos === null ) xpos = '50%'; if ( arguments.length < 2 || speedFactor === null ) speedFactor = 0.5; if ( arguments.length < 3 || outerHeight === null ) outerHeight = true; speedFactor = jQuery( this ).data( 'parallax_sense' ) / 100; xpos = '0px'; let prev_pos = $window.scrollTop(); // function to be called whenever the window is scrolled or resized function update() { const pos = $window.scrollTop(); $this.each( function () { firstTop = jQuery( this ).offset().top; const $element = jQuery( this ); const top = $element.offset().top; const height = getHeight( $element ); if ( top + height < pos || top > pos + windowHeight ) { return; } const bg = jQuery( this ).css( 'backgroundPosition' ); const pxpos = bg.indexOf( 'px' ); const bgxpos = bg.substring( 0, pxpos ); let f = 0; if ( prev_pos - pos <= 0 ) { f = parseInt( bgxpos ) - parseInt( speedFactor * Math.abs( prev_pos - pos ) ); } else { f = parseInt( bgxpos ) + parseInt( speedFactor * ( prev_pos - pos ) ); if ( f > 0 ) f = 0; } const is_img_parallax_disable_on_mobile = jQuery( this ) .parent() .data( 'img-parallax-mobile-disable' ) .toString(); if ( ! /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent ) ) var is_mobile = 'false'; else var is_mobile = 'true'; if ( is_mobile == 'true' && is_img_parallax_disable_on_mobile == 'true' ) var disable_row_effect = 'true'; else var disable_row_effect = 'false'; if ( disable_row_effect == 'false' ) { jQuery( this ).css( 'backgroundPosition', f + 'px ' + xpos ); } /*if(this).hasClass('upb_bg_size_automatic'){ jQuery(this).each(function(){ var vh = jQuery(window).outerHeight(); var bh = jQuery(this).parent().outerHeight(); var speed = jQuery(this).data('parallax_sense'); var bw = jQuery(this).outerWidth() var ih = (((vh+bh)/100)*speed)+bw; jQuery(this).css('background-size',ih+'px auto'); }) }*/ } ); prev_pos = pos; } $window.bind( 'scroll', update ).resize( update ); update(); }; } )( jQuery ); // Auto Initialization //if( ! jQuery.browser.mobile){ jQuery( document ).ready( function () { if ( ! /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent ) ) var is_mobile = 'false'; else var is_mobile = 'true'; jQuery( '.vcpb-mlvp-jquery' ).each( function () { const selector = jQuery( this ); //var sense = selector.data('parallax_sense'); //var incr =(selector.outerWidth()*(sense/100)); let img_list = selector.data( 'img-array' ); img_list = img_list.split( ',' ); const img_list_len = img_list.length; for ( let i = 0; i < img_list_len; i++ ) { jQuery( selector ).prepend( '
' ); } const hp = jQuery( selector ).find( '.vertical_layer_parallax' ); hp.css( { 'max-width': 'none', position: 'absolute' } ); //hp.css('min-width',(hp.parent().outerWidth())+incr+'px'); } ); jQuery( '.vcpb-mlvp-jquery' ).each( function () { let layer_count = jQuery( this ).find( '.vertical_layer_parallax' ) .length; let sense = parseInt( jQuery( this ).data( 'parallax_sense' ) ) / 100; const is_img_parallax_disable_on_mobile = jQuery( this ) .parent() .data( 'img-parallax-mobile-disable' ) .toString(); layer_count = sense / layer_count; sense = 0; if ( is_mobile == 'true' && is_img_parallax_disable_on_mobile == 'true' ) var disable_row_effect = 'true'; else var disable_row_effect = 'false'; jQuery( this ) .find( '.vertical_layer_parallax' ) .each( function ( index ) { sense += layer_count; jQuery( this ) .css( { height: jQuery( this ).parent().outerHeight() + 'px', width: jQuery( this ).parent().outerWidth() + 'px', } ) .attr( 'data-p-sense', sense ); if ( disable_row_effect == 'false' ) jQuery( this ).vparallax( '0%', sense ); } ); } ); //jQuery('.vcpb-vz-jquery').vparallax(); jQuery( '.vcpb-vz-jquery' ).each( function () { const is_img_parallax_disable_on_mobile = jQuery( this ) .parent() .data( 'img-parallax-mobile-disable' ); if ( is_mobile == 'true' && is_img_parallax_disable_on_mobile == 'true' ) var disable_row_effect = 'true'; else var disable_row_effect = 'false'; if ( disable_row_effect == 'false' ) jQuery( this ).vparallax( '50%', jQuery( this ).data( 'parallax_sense' ) / 100 ); } ); jQuery( '.vcpb-hz-jquery' ).hparallax(); if ( jQuery( '.vcpb-hz-jquery' ).length > 0 ) { setTimeout( function () { jQuery( window ).scrollTop( 0 ); }, 1000 ); } } ); //}