【问题标题】:Get visible text of a div获取 div 的可见文本
【发布时间】:2015-08-30 14:54:39
【问题描述】:

我有一个带有overflow:auto<div>、可变高度/宽度和一些(更长的)文本(用户可以向下滚动)。我想要的是检索当前可见的 div 第一行的前 x 个字符。

图示示例:当用户点击下面的按钮时,JavaScript 函数应返回“convallis.”。当用户向下滚动到下一行时,它应该返回“mi aliquam”。

到目前为止我已经尝试过:我玩过scrollTop()scrollHeight() 并阅读了How to know what lines / chars are currently visible in a textarea?JavaScript - Visible Text of a DIV,但没有一个能真正回答我的问题。

【问题讨论】:

    标签: javascript view scroll visible


    【解决方案1】:

    您可以尝试在 jQuery 中使用 :visible 选择器,它应该可以达到您想要的效果:

    function GetFirstWord()
    {
        var allText = $('div').children(":visible").text()   
        var words = allText.split(" ");
        return words[0];
    }
    

    参考:https://api.jquery.com/visible-selector/

    【讨论】:

    【解决方案2】:

    好的,我找到了解决这个问题的方法:有一个不错的小 jQuery 插件,它完全符合我的要求:https://www.customd.com/articles/13/checking-if-an-element-is-visible-on-screen-using-jquery

    【讨论】:

    • 这个插件是如何解决你的问题的?你是如何使用它的?你能重现一个简单的演示来展示你的解决方案吗?请参阅“minimal reproducible example”指南以获取指导,并请在您的问题中发布代表原始问题的代码 sn-p。
    • 我还没有完全集成我的解决方案,但这是我打算做的事情:1)逐字拆分 div 的字符串 2)将每个单词包装在 3 ) 通过检查 $("#content").children('span').each(function () { if ($(this).visible() == true) {返回 this.innerText; } })
    • 请在edit 中向您的问题解释任何细节,而不是在 cmets 中(因为它们是短暂的并且经常被删除和修剪)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    相关资源
    最近更新 更多