jquery – 无法计算隐藏div的宽度

前端之家收集整理的这篇文章主要介绍了jquery – 无法计算隐藏div的宽度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
由VEGA BELOW解决. HERE IS THE WORKING FIDDLE.我将整个帖子保留给未来的访问者,看看这个问题是如何解决的.

我正在尝试创建一个按钮,当它悬停时,会在下面的抽屉上显示一些信息.

我希望能够轻松地将其实现到页面中,因此我将其转换为jQuery小部件.我想根据按钮和/或抽屉上的内容进行调整,但现在没有这样做.用户应该能够将单个HTML div标签与隐藏数据放在一起,它才能正常工作.

理想情况下,按钮/抽屉的宽度将调整到两者之间的最大值,以便抽屉在处于关闭状态时完全隐藏.我只是不希望我的用户不得不设置固定宽度.

我需要帮助!

这是它的样子:

相关HTML(Fiddle中的完整HTML):

  1. <div class="download" data-value="It's awesome!">Visit Website</div>

相关CSS(Fiddle中的完整CSS):

  1. .button {
  2. position:absolute;
  3. padding:10px;
  4. }
  5.  
  6. .drawer {
  7. Box-sizing:border-Box;
  8. z-index:-1;
  9. position:absolute;
  10. top:3px;
  11. left:3px;
  12. padding:6px 10px;
  13. text-align:center;
  14. -webkit-transition:0.3s left ease-in;
  15.  
  16. }

相关的jQuery(Fiddle中的完整jQuery):

  1. $(function() {
  2. $(".button").each(function() {
  3. $(this).append("<div class='drawer'>" + $(this).data('value') + "<div class='handle'>||</div></div>");
  4. $(".drawer",this).css("width",$(".button").width());
  5. });
  6.  
  7. $(".button").mouseenter(function() {
  8. $(".drawer",this).css("left",$(".button").outerWidth());
  9. }).mouseleave(function() {
  10. $(".drawer","3px");
  11. });
  12. });

解决方法

你必须根据这个按钮计算宽度.见下文,
  1. $(function() {
  2. $(".button").each(function() {
  3. $(this).append("<div class='drawer'>" + $(this).data('value') + "<div class='handle'>||</div></div>");
  4. $(".drawer",this).width($(this).width()); //updated with this object
  5. });
  6.  
  7. $(".button").mouseenter(function() {
  8. $(".drawer",$(this).outerWidth()); //updated with this object
  9. }).mouseleave(function() {
  10. $(".drawer","3px");
  11. });
  12. });

演示:http://jsfiddle.net/dELNa/11/

猜你在找的jQuery相关文章