Skip to content
  • Recent
  • Tags
  • Popular
  • Users
  • Search
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse

Lay Theme Forum

  1. Home
  2. General Discussion
  3. fade/slide in elements on scroll on mobile

fade/slide in elements on scroll on mobile

Scheduled Pinned Locked Moved General Discussion
3 Posts 2 Posters 334 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • J Offline
    J Offline
    jensdan
    wrote on last edited by
    #1

    I found this useful post about fading in elements: fade in elements on scroll like on http://meireundmeire.com/category/selected-projects/

    However it does not work on mobile – is there a way to make it work? Like on e.g. http://meireundmeire.com
    Any input on this would be much appreciated.

    THX!

    As I only want it to slide in images I have changed the js script and added the .slideUp class to images in the gridder.

    javascript:

    <script>
    var $items;
    var doScroll = function(){
    $items.each(function(ix){
    var rect = this.getBoundingClientRect();

    		//above viewport
    		if(rect.top+rect.height < 0){
    			jQuery(this).addClass("above").removeClass('below transition-in');
    		}
    		//below viewport
    		else if(rect.top > window.innerHeight){
    			jQuery(this).addClass("below").removeClass('above transition-in');
    		}
    		// in viewport
    		else{
    			jQuery(this).removeClass('above below').addClass("transition-in");
    		}
    	});
    
    };
    window.laytheme.on("newpageshown", function(){
        setTimeout(function(){
            $items = jQuery(".slideUp");
        },0);
    });
    jQuery(window).on('scroll', doScroll);
    

    </script>

    CSS
    .slideUp.above{
    transform: translateY(-200px);
    opacity: 0;
    }

    .slideUp.below{
    transform: translateY(200px);
    opacity: 0;
    }

    .slideUp.transition-in{
    transform: translateY(0);
    opacity: 1;
    }

    .slideUp{
    transition: transform 0.5s cubic-bezier(0.165, .84, .44, 1), opacity 0.5s cubic-bezier(0.165, .84, .44, 1);
    }

    J 1 Reply Last reply
    0
    • J jensdan

      I found this useful post about fading in elements: fade in elements on scroll like on http://meireundmeire.com/category/selected-projects/

      However it does not work on mobile – is there a way to make it work? Like on e.g. http://meireundmeire.com
      Any input on this would be much appreciated.

      THX!

      As I only want it to slide in images I have changed the js script and added the .slideUp class to images in the gridder.

      javascript:

      <script>
      var $items;
      var doScroll = function(){
      $items.each(function(ix){
      var rect = this.getBoundingClientRect();

      		//above viewport
      		if(rect.top+rect.height < 0){
      			jQuery(this).addClass("above").removeClass('below transition-in');
      		}
      		//below viewport
      		else if(rect.top > window.innerHeight){
      			jQuery(this).addClass("below").removeClass('above transition-in');
      		}
      		// in viewport
      		else{
      			jQuery(this).removeClass('above below').addClass("transition-in");
      		}
      	});
      
      };
      window.laytheme.on("newpageshown", function(){
          setTimeout(function(){
              $items = jQuery(".slideUp");
          },0);
      });
      jQuery(window).on('scroll', doScroll);
      

      </script>

      CSS
      .slideUp.above{
      transform: translateY(-200px);
      opacity: 0;
      }

      .slideUp.below{
      transform: translateY(200px);
      opacity: 0;
      }

      .slideUp.transition-in{
      transform: translateY(0);
      opacity: 1;
      }

      .slideUp{
      transition: transform 0.5s cubic-bezier(0.165, .84, .44, 1), opacity 0.5s cubic-bezier(0.165, .84, .44, 1);
      }

      J Offline
      J Offline
      jensdan
      wrote on last edited by
      #2

      @jensdan I found out it worked as soon as I made a custom phone layout and added the slideUp class.

      1 Reply Last reply
      0
      • mariusjopenM Offline
        mariusjopenM Offline
        mariusjopen
        Global Moderator
        wrote on last edited by
        #3

        Dear @jensdan
        ah great!

        Very happy about that!

        Thank you for letting us know!

        Best!

        Marius

        www.mariusjopen.world

        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        I also code custom websites or custom Lay features.
        šŸ’æ Email me here: šŸ’æ
        info@laytheme.com

        Before you post:
        1. When using a WordPress Cache plugin, disable it or clear your cache.
        2. Update Lay Theme and all Lay Theme Addons
        3. Disable all Plugins
        4. Go to Lay Options → Custom CSS & HTML, click "Turn Off All Custom Code", click "Save Changes"

        This often solves issues you might run into

        When you post:
        1. Post a link to where the problem is
        2. Does the problem happen on Chrome, Firefox, Safari or iPhone or Android?
        3. If the problem is difficult to explain, post screenshots / link to a video to explain it
        Online Users
        Forgot your key, lost your files, need a previous Lay Theme or Addon version? Go to www.laykeymanager.com
        laytheme.com
        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Recent
        • Tags
        • Popular
        • Users
        • Search