【问题标题】:Using JQuery to animate size of div使用 JQuery 动画 div 的大小
【发布时间】:2013-12-19 01:45:40
【问题描述】:

我是 Jquery 的业余爱好者,但离我想要的东西很近。当单击对象时,我试图让包含的 div 动画到更大的高度。我正在使用以下代码:

<div id="sliderone">
 <div id="nav">
  <div id="navone" style="text-align: center;">This is a clickable title</div>
 </div>

 <div id="ourteam">
  <div id="title"></div>
 </div>
</div>

<script type="text/javascript">
   $('#navone').click(function(){
   $('#title').html("<img src='http://placehold.it/350x550' alt='' />");
        $('.post-8 .content-container').animate({height: '950'});
   });  
</script>

#navone {
   padding:20px 20px;
   cursor:pointer; 
}

#title {
   width:350px;
   margin:0 auto;
}

#sliderone {
   height:50px;
   background-color:#777777;
   position: absolute;
   margin-top: -500px;
   left: 50%;
   margin-left: -175px;
}

#sliderone 必须绝对定位,因此当我尝试为.post-8 .content-container 设置动画时,它会使顶部更长,而不是让底部更长以包含新内容。我可以将负边距设置为更小或为.post-8 .content-container 的底部设置动画吗?

感谢您的帮助。我一直在努力解决这个问题,只是无法弄清楚最后一个问题。

这是要查看的实际页面。

http://s416809079.onlinehome.us/wp-login 登录:堆栈溢出 密码:stackoverflow

【问题讨论】:

  • 使用 jQuery 库中的 slideDown 怎么样?
  • 您正在使用带有 jQ​​uery 的类选择器,但这些类不存在于 html 中。您的选择器不会选择任何东西,因此不会为任何东西设置动画。
  • html中的`$('.post-8 .content-container')`在哪里?
  • 对不起。我把这弄糊涂了。 (.post-8 .content-container) 是包含 WordPress 的帖子。

标签: javascript jquery html css jquery-animate


【解决方案1】:

您可能想尝试使用一些 jQuery 的 slideDownslideUpslideToggle 方法。由于您特别希望滑动容器,我想这可能更符合您的需求。

根据上面的内容查看此示例:http://jsfiddle.net/82kHV/13/

还链接到 jQuery 方法: http://api.jquery.com/category/effects/sliding/

您将在CSS 中设置所需的元素高度。 jQuery 将在 slideDown 中从 0 到这个定义的值进行插值和动画处理,在 slideUp 中反之。 slideToggle 将获取元素的初始状态并执行相反的操作或切换。

【讨论】:

  • 我意识到的问题是(.post-8 .content-container)实际上并不包含#sliderone。我正在使用负上边距将其放在它的前面。
  • 我不确定我是否完全理解,但不管content-container 的位置如何,slideToggle 方法应该是一样的。
【解决方案2】:

我猜你有这种情况 --> http://jsfiddle.net/z7M2Y/15/ 。如果是这种情况,您还需要为#sliderone 制作height 动画:

$('#sliderone').animate({height: '225px'});/*The value you calculate*/

查看此演示http://jsfiddle.net/z7M2Y/26/

【讨论】:

  • 这接近工作了,但是 (.post-8 .content-container) 实际上并不包含#sliderone,所以我使用负上边距将它放在它前面。所以我不需要使#sliderone 更大,而是更改负边距以在底部创建更多空间。但是- $('#sliderone').animate({margin-top: '-225px'});似乎无效。
  • 谢谢。我意识到这一点,我想我把它弄糊涂了。我创建了一个登录名供您自己查看。我在上面添加了它。谢谢!
  • @natehoward 我怎样才能访问你所说的地方???是一个网络的混乱链接。使用margintop 工作的小提琴尝试使用marginTop 而不是margin-top
  • margintop 示例完美运行!太感谢了!另一个快速问题 - 我需要添加什么才能在再次单击时反转?
猜你喜欢
  • 2014-06-20
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
  • 2011-04-18
  • 2012-06-08
  • 2017-06-13
  • 2011-05-02
  • 2013-02-05
相关资源
最近更新 更多