2012-04-16 56 views
2

我发现了一个向上显示DIV的主题,但由于我不是Javascript专家,我想知道如何使这项工作onClick而不是悬停?使DIV向上显示onClick

万一这会有所帮助,链接前面的话题是:How to make jQuery animate upwards

任何帮助表示赞赏。

+1

http://api.jquery.com/slideUp/ – mplungjan 2012-04-16 07:57:36

+0

什么是你的“的定义向上透露“?任何网页,我们可以有一个例子? – balexandre 2012-04-16 07:58:53

回答

2

下面是一个简单demo

$("#slideToggle").click(function() { 
    $('.slideTogglebox').slideToggle(); 
}); 

$("#reset").click(function(){ 
    location.reload(); 
}); 

HTML:

<button id=slideToggle>slide</button> 
    <br/> 
    <div class="slideTogglebox"> 
     slideToggle() 
    </div> 
0
$(document).ready(function() { 
    var isClicked = false; //assuming its closed but its just logic 
    $('.button').click(function() { 
     if (isClicked) { 
      isClicked = true; 
      $(this).closest('div').animate({ 
      height: "150px", 
     }, 400, "swing"); 
     } 
     else 
     { 
      isClicked = false; 
      $(this).closest('div').animate({ 
       height: "50px", 
      }, 400, "swing"); 
     } 
    }); 
}); 

这是非常糟糕的做法。你应该考虑尝试使用CSS3来代替,然后使用仅仅指刚jQueries toggleClass

.toggleClass('animateUpwards) 

让浏览器使用的硬件能力,以动画的所有的东西,也是其在JavaScript中一个不错的一行。

+0

为什么创建切换时,它已经存在? – mplungjan 2012-04-16 09:18:32

+0

我不确定你的意思。它存在于哪里? – ppumkin 2012-04-16 09:19:19

+0

http://api.jquery.com/toggle-event/ - toggleclass不能进行动画制作(至少在你建议的CSS3之前) - 而我现在才意识到我们有http://api.jquery.com/slideToggle/ – mplungjan 2012-04-16 10:52:41

0

尝试jQuery slideUp或其他地方张贴jQuery slideToggle - 或者CSS3 Example

或从您发布的问题,或许这就是你的意思:

http://jsbin.com/ogaje

点击(可见部分) div

$(document).ready(function() { 
    $('.featureBox').toggle(function() { 
    $(this).animate({top: '-390px', height:'540px'},{duration:'slow', queue:'no'}); 
    // or $(this).slideUp() 
    }, 
    function() { 
    $(this).animate({top: '0px', height:'150px'},{duration:'slow', queue:'no'}); 
    // or $(this).slideDown() 
    }); 
}); 

点击其他

$(document).ready(function() { 
    $("#button").toggle(function() { 
    $("#someDiv").animate({top: '-390px', height:'540px'},{duration:'slow', queue:'no'}); 
    // or $("#someDiv").slideUp() 
    }, 
    function() { 
    $("#someDiv").animate({top: '0px', height:'150px'},{duration:'slow', queue:'no'}); 
    // or $("#someDiv").slideDown() 
    }); 
});