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

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

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

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

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

我需要帮助!

这是它的样子:

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

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

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

.button {
    position:absolute;
    padding:10px;
}

.drawer {
    Box-sizing:border-Box;
    z-index:-1;
    position:absolute;
    top:3px;
    left:3px;
    padding:6px 10px;
    text-align:center;
    -webkit-transition:0.3s left ease-in;

}

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

$(function() {
    $(".button").each(function() {
        $(this).append("<div class='drawer'>" +  $(this).data('value') + "<div class='handle'>||</div></div>");
        $(".drawer",this).css("width",$(".button").width());
    });

    $(".button").mouseenter(function() {
        $(".drawer",this).css("left",$(".button").outerWidth());
    }).mouseleave(function() {
        $(".drawer","3px");
    });
});

解决方法

你必须根据这个按钮计算宽度.见下文,
$(function() {
    $(".button").each(function() {
        $(this).append("<div class='drawer'>" +  $(this).data('value') + "<div class='handle'>||</div></div>");
        $(".drawer",this).width($(this).width()); //updated with this object
    });

    $(".button").mouseenter(function() {
        $(".drawer",$(this).outerWidth()); //updated with this object
    }).mouseleave(function() {
        $(".drawer","3px");
    });
});

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

猜你在找的jQuery相关文章