当前位置: 首页 > 面试题库 >

使用jQuery检测容器溢出?

锺离伟彦
2023-03-14
问题内容

我已经看到了这个问题,但是感觉必须要有一个“更清洁”的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');
}


 类似资料:
  • 问题内容: 函数可以工作并检测表单元素的更改,但是有没有一种方法可以检测DOM元素的内容何时更改? 这是行不通的,除非是表单元素 我希望在执行类似操作时触发此操作: 另外或函数没有回调。 有什么建议么? 问题答案: 我没有在jQuery中使用突变事件API,但是粗略的搜索使我进入了GitHub上的该项目。我不知道该项目的成熟度。

  • 每个任务都有一个自己的堆栈,如果任务使用xTaskCreate()创建,则任务堆栈会自动从堆内存上创建。如果使用xTaskCreateStatic()创建,则堆栈由开发者自己确定并提供。堆栈溢出是影响系统稳定性的一个常见因素,freeRTOS提供两种可选的用于检测和纠正堆栈溢出的机制。使用配置选项configCHECK_FOR_STACK_OVERFLOW设置。 注意,这些选择只在那些内存映射不是

  • 问题内容: 有没有一种方法可以检测当前用户是否正在使用jQuery / JavaScript使用iPad? 问题答案: iPad检测 通过查看属性,您应该能够检测到iPad用户: iPhone / iPod检测 同样,用于检查iPhone或iPods等设备的属性:

  • 问题内容: 是否有可能让jQuery / javascript检测字符串在何处中断(以便适合CSS宽度限制),以便在新行的开头之前插入DOM元素? 问题答案: 我想出了一种方法,但是出于您的目的,它可能会过大,因此请考虑到这一点。 您需要创建该元素的克隆,清空原始元素,然后将每个单词移回原始元素。如果高度在任何时候都发生变化,则该单词之前会有换行符。使用会很简单,但是如果里面可以有其他标签(而不仅

  • 我有点被这个问题卡住了:我有一个嵌套的图像容器,每行包含三个图像,三行。我需要它居中。我尝试在父容器上进行文本对齐,但不起作用,所以我使用了flex属性,但图像容器并没有在页面的中心对齐,而是溢出到右侧,使其可以滚动。 我试着在谷歌Chrome中查看这个页面,但我似乎找不到是什么元素造成的。以下是未选中align属性的快照: 在此输入图像说明 下面是我在上面打勾时发生的情况: 在此输入图像说明 这

  • 问题内容: 检测元素是否已溢出的最简单方法是什么? 我的用例是,我想限制某个内容框的高度为300px。如果内部内容比这更高,我会溢出来。但是,如果溢出,我想显示一个“更多”按钮,但是如果不是,我不想显示该按钮。 有没有检测溢出的简便方法,还是有更好的方法? 问题答案: 如果只想显示更多内容的标识符,则可以使用纯CSS来实现。我为此使用纯滚动阴影。诀窍是使用。您的CSS看起来像这样: