JAVASCRIPT   139

static-map.js

Guest on 24th July 2021 08:33:15 PM

  1. /* globals jQuery, sowb */
  2.  
  3. var sowb = window.sowb || {};
  4.  
  5. jQuery( function ( $ ) {
  6.         var setupStaticMapErrorHandler = function () {
  7.                
  8.                 $( '.sowb-google-map-static' ).each( function () {
  9.                         var $this = $( this );
  10.                         var showFallbackImage = function () {
  11.                                 if ( $this.data( 'fallbackImage' ) ) {
  12.                                         var imgData = $this.data( 'fallbackImage' );
  13.                                         if ( imgData.hasOwnProperty( 'img' ) && imgData.img.length > 0 ) {
  14.                                                 $this.parent().append( imgData.img );
  15.                                                 $this.remove();
  16.                                         }
  17.                                 }
  18.                         };
  19.                         if ( this.sowbLoadError ) {
  20.                                 showFallbackImage();
  21.                         } else if ( !this.complete ) {
  22.                                 $this.error( showFallbackImage );
  23.                         }
  24.                 } );
  25.                
  26.         };
  27.         setupStaticMapErrorHandler();
  28.  
  29.         $( window ).on('load resize setup_widgets', function() {
  30.                 $( '.sowb-google-map-static' ).each( function () {
  31.                         var $this = $( this );
  32.                         var src = $this.prop( 'src' );
  33.                         var breakpointCheck = window.matchMedia( '(max-width: ' + $this.data( 'breakpoint' ) + 'px)' )
  34.                         // Check if the user is viewing the map on mobile
  35.                         if ( breakpointCheck.matches ) {
  36.                                 // Scale the map for mobile
  37.                                  $this.attr( 'src', src + '&scale=2' );
  38.                         } else {
  39.                                 // Check if the static map enabled for mobile and if it is, restore it back to normal
  40.                                 if ( src.indexOf( '&scale=2' ) >= 0 ) {
  41.                                         $this.attr( 'src', src.split('&scale=2')[0] );
  42.                                 }
  43.                         }
  44.                        
  45.                 } );
  46.         } );
  47. } );
  48.  
  49. window.sowb = sowb;

Raw Paste


Login or Register to edit or fork this paste. It's free.