holian
holian

Reputation: 755

Animate and image up and down in jQuery

I'm trying to animate and image up and then down with jQuery.

It should behave like this:

When the page loads it shows 50% of the image. If someone clicks on the image it then animates the div up the page. If the user click again it moves back down the page.

html

 <div id="slidebottom" class="slide">
     <div class="inner"><img src="images/sze.jpg" alt="" class="try" /></div>
 </div>

jQuery

$(document).ready(function() {
    $('.try').click(function() {
        $(".inner").animate({
            top: '-=100px'
        }, 2000);
    });
});

How can I reverse the animation after click two? At the moment every time I click, the container moves up.

Upvotes: 2

Views: 40339

Answers (3)

BanjoMike
BanjoMike

Reputation: 1

Just put another code line underneath the first and it will animate them in order

$(document).ready(function() {
    $('.try').click(function() {
        $(".inner").animate({
            top: '-=100px'
        }, 2000);
        $(".inner").animate({
            top: '+=100px'
        }, 2000);
    });
});

Upvotes: 0

menislici
menislici

Reputation: 1167

Try this example. Also note that in order to use the top css property you should either position: relatve; or position: absolute the .inner div.

 var clicked = false
 $('.try').click(function () {
     if (clicked == true) {
         $(".inner").animate({
             top: '0px'
         }, 2000);
         clicked = false;
     } else {
         $(".inner").animate({
             top: '-100px'
         }, 2000);
         clicked = true;
     }
 });​

Upvotes: 2

Inkbug
Inkbug

Reputation: 1692

You can try using the .toggle() method, which takes two functions and alternates between executing each one of them on click:

$(document).ready(function(){
  $('.try').toggle(function() {
    $(".inner").animate({top: '-=100px'}, 2000);
  }, function() {
    $(".inner").animate({top: '+=100px'}, 2000);
  });
});

However, I personally would use a class and CSS3 Transitions.

Upvotes: 5

Related Questions