1

我正在尝试确定插槽元素是否具有滚动条。如果确实如此,我想在插槽旁边添加一个显示全部/显示更少的链接,这将相应地扩展或收缩它。

我正在使用 IntersectionObserver,因为它似乎是为这个用例设计的。该槽包含一个 ul ,它本身具有可变数量的 li 孩子。直到触发添加显示更多/显示链接的函数之后才会填充 ul - 因此使用 IntersectionObserver。我写的函数应该返回一个布尔值:

_isOverflowing( rootElem, childElem ) {
    // rootElem is the slot; childElem is the ul
    let observer;

    const options = {
        root: rootElem,
        threshold: 1.0
    };

    function handleIntersect(entries, observer) {
        entries.forEach(entry => {
            return entry.intersectionRatio >= options.threshold
        });
    }

    observer = new IntersectionObserver(handleIntersect, options);
    return observer.observe( childElem );
}

我所看到的是最终功能

observer.observe( childElem )

返回未定义。我究竟做错了什么?

4

0 回答 0