JQuery Анимация переключения - PullRequest
3 голосов
/ 15 февраля 2011

Я пытаюсь создать анимационный эффект, подобный следующему.

// JavaScript Document
$(document).ready(function () {
    $('.lovebtn').click(function () {
        $('.love').animate({
            height: '672px'
        }, 1000, function () {
            $('.lovetxt').css("display", "block");
            $(".lovebtn .button").attr("src", "images/btn_love_close.gif");

        });

    });


    // Lust
    $('.lustbtn').click(function () {
        $('.lust').animate({
            height: '672px'
        }, 1000, function () {
            $('.lusttxt').css("display", "block");
            $(".lustbtn .button").attr("src", "images/btn_lust_close.gif");

        });

    });


    //luxuary
    // Lust
    $('.luxurybtn').click(function () {
        $('.maskbg').css("display", "block");
        $('.luxury').animate({
            height: '1056px'
        }, 1000, function () {
            $('.luxurytxt').css("display", "block");
            $(".luxurybtn .button").attr("src", "images/btn_luxury_close.gif");

        });

    });
});

http://uniquedl.com/3closets/index.html

, когда вы переходите на страницу ablove и нажимаете три кнопки на любой любовной страстироскошь.Вы получаете ряд эффектов.когда я нажимаю ту же кнопку, я не хочу изменить эффект.

какие-либо советы, как я могу это сделать?

Ответы [ 3 ]

6 голосов
/ 15 февраля 2011

Я покажу только для кнопки lovem почти то же самое для других, просто разной высоты и CSS-селекторов, конечно

$('.lovebtn').click(
     $('.love').toggle(  
         function() {  
             $('.love').animate({  
                 height: '672px'   
             }, 1000, function () {  
                 $('.lovetxt').css("display", "block");  
                 $(".lovebtn .button").attr("src", "images/btn_love_close.gif");  
             }    
        },    
        function() {    
            $('.love').animate({    
                height: '480px'    
            }, 1000, function () {    
                $('.lovetxt').css("display", "none");  
                $(".lovebtn .button").attr("src", "images/btn_love_open.gif");  
            }    
        }  
    );  
);

Извините, у меня проблемы с размещением кода в правильном макете :( Вы можете проверить это здесьhttp://jsfiddle.net/dKyku/

По сути, нажав на ссылку, вы переключаетесь между двумя частями кода, одна показывает раздел, а вторая скрывает его / возвращает его в исходное расположение.

5 голосов
/ 23 ноября 2012

Вы также можете сделать это, добавив дополнительный класс, подобный этому

   $('.lovebtn').click(function (){
   if (!$(this).hasClass('reverse')) {
    hasClickedLove = true;
    $('.love').animate({
        height: '672px'
    }, 1000, function () {
        $('.lovetxt').css("display", "block");
        $(".lovebtn .button").attr("src", "images/btn_love_close.gif");
    });
  $(this).addClass('reverse);

 }//end if
 else if(hasClass('reverse')) {
    $(this).removeClass('reverse);
    //animation code
   }
});
4 голосов
/ 15 февраля 2011

Вставьте логическое значение, например:

$('.lovebtn').click(function () {
    if ( !hasClickedcLove) {
        hasClickedLove = true;
        $('.love').animate({
            height: '672px'
        }, 1000, function () {
            $('.lovetxt').css("display", "block");
            $(".lovebtn .button").attr("src", "images/btn_love_close.gif");
        });
    }//end if
    else {
        hasClickedLove = false;
        //animation code
    }
});
...