javascript - Slide out element to right, then back in from left -
consider following piece of html:
<div id="outer"> <div id="inner"> <p id="content"> content </p> </div> </div>
i can make #inner
slide out right screen using following jquery:
$("#slide").animate( { 'marginleft':'100%' },400, function(){ $(this).slideup('fast'); $(this).css("margin-right","100%"); $(this).css("margin-left","0"); } );
however, how can make same element, new content (from ajax response), slide in from left?
i thinking resetting margins (from margin-left:100%
margin-left:0; margin-right:100%
) while out of view , use animation slide in left:
$("#slide").animate( { 'marginright':'0' },400, function(){ $(this).slidedown('fast'); } );
this slides view, not left of screen. ideas? got .slideup()
different stackexchange question don't know why it's needed horizontal slide.
simply reset margin using .css()
method:
$(function() { $("#outer").click(function() { $(this).animate({ 'marginleft': '100%', 'opacity': 0 }, 200, function() { //================================== //call synchronous ajax here or move block //to ajax done callback function //some ajax change $(this).css({ "background": "blue" }).text("came new content"); $(this).css({ 'marginleft': '-100%' }); $(this).animate({ 'marginleft': '0', 'opacity': 1 }, 200); //================================= }); }); });
#outer { width: 100px; height: 100px; display: block; background: red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="outer"> <div id="inner"> <p id="content">click me</p> </div> </div>
Comments
Post a Comment