微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用jQuery检测容器溢出?

我看到了 this question,但是觉得这样做需要一个“更干净”的jQuery方法.我甚至不确定这是否真的适用于所有情况. jQuery是否有办法确定容器是否有溢出而不比较维度?

为了澄清,是否有一种方法可以测试CSS属性overflow:hidden已被踢入并隐藏内容

解决方法

$.fn.hasOverflow = function() {
    var $this = $(this);
    var $children = $this.find('*');
    var len = $children.length;

    if (len) {
        var maxWidth = 0;
        var maxHeight = 0
        $children.map(function(){
            maxWidth = Math.max(maxWidth,$(this).outerWidth(true));
            maxHeight = Math.max(maxHeight,$(this).outerHeight(true));
        });

        return maxWidth > $this.width() || maxHeight > $this.height();
    }

    return false;
};

例:

var $content = $('#content').children().wrapAll('<div>');
while($content.hasOverflow()){
    var size = parseFloat($content.css('font-size'),10);
    size -= 1;
    $content.css('font-size',size + 'px');
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐