有没有一种方法可以检测何时触发了溢出-y:auto,并因此创建一个弹出窗口

Is there a way to detect when an overflow-y:auto has been triggered, and create a popup as a result?

本文关键字:auto 创建 一个 窗口 溢出 方法 一种 检测 有没有 何时触      更新时间:2023-09-26

我有一个网站,允许用户不断向框中添加文本。我希望他们能够不断向其添加文本,直到达到创建滚动条的程度。我不希望创建滚动条,而是希望网站基本上阻止他们向其中添加任何文本,弹出一个弹出窗口,上面写着"为了添加更多文本,你需要成为的成员。"

这可能吗?有人知道如何最好地做到这一点吗?

现在,我只有一个简单的文本区域,也就是:

<textarea rows="4" cols="50" style="overflow-y:auto;">
At w3schools.com you will learn how to make a website. We offer free tutorials in all web development technologies.
</textarea>

尝试以下方法:

$(function(){
    $("textarea").keypress(function(e){
    
        if(this.scrollHeight > $(this).outerHeight())
        {
            alert("You must be a member");
            e.preventDefault();
        }
    });
});

JSFiddle


需要注意的3件事

  1. 当滚动条出现时,文本框的操作宽度会减小。这将把文本向下推到下一行,而原来没有。

  2. 任何人都可以更改你的文本框的宽度/高度,使其比你最初想要的更大,以留出更多的空间来写东西。

  3. 任何人都可以禁用JavaScript,并将超出您限制的内容放入。