首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在`onClick`上切换DIV高度

在`onClick`上切换DIV高度
EN

Stack Overflow用户
提问于 2014-05-20 17:05:16
回答 2查看 11.3K关注 0票数 2

我想切换除法的高度。我尝试过在if/else语句中使用.animate。但它会反弹回来。我现在使用的代码将隐藏我的除法,而不是切换高度。它会在点击时触发。

代码语言:javascript
运行
复制
$(document).ready(function() {
       $("#content1").toggle(function(){
         $(this).animate({height:'400px'});
   }, function() {
         $(this).animate({height:'200px'});
   });
});

我希望有人知道答案,因为我在google/stackoverflow上找不到答案。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-05-20 17:13:24

为什么不直接使用.animate()来设置div的高度,并在每次单击div时对更改进行动画处理!

像这样:

代码语言:javascript
运行
复制
$( "div" ).click(function() {
    if ( $(this).height() != 50)
          $( this ).animate({ height: 50 }, 1000 );
    else
          $( this ).animate({ height: 100 }, 1000 );
});

下面是一个完整的例子:http://jsfiddle.net/62jcH/3/

票数 6
EN

Stack Overflow用户

发布于 2014-05-20 17:24:20

您可以添加一个data-clicks属性,该属性将存储可用于选择正确动画的点击次数-偶数/奇数。

代码语言:javascript
运行
复制
$(document).ready(function() {
   $('#content1').data( 'clicks', 0 );
   $("#content1").on( 'click', function() {
      var clicks = +$( this ).data( 'clicks' );
      if( clicks % 2 === 0 ) {
         $(this).animate({height:'400px'});
      } else {
         $(this).animate({height:'200px'});
      }
      $( this ).data( 'clicks', clicks + 1 );
   });
});

或者,您可以用此代码编织出一个jQuery插件,并使用它来代替单击事件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23755401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档