小程序代码实现ctrl+f搜索定位功能

发布于 2022-09-12 13:11:00 字数 163 浏览 17 评论 0

小程序代码如何实现ctrl+f搜索定位功能,
如下图
image
就是一片文章,上面有个搜索框,例如我输入222,就把文章里面包含222的高亮出来并且滚动到改位置
。就想pc浏览器的ctrl+f功能

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

宣告ˉ结束 2022-09-19 13:11:00

我是菜鸡,以我目前的认知觉得没有办法实现

情定在深秋 2022-09-19 13:11:00

wx.pageScrollTo(Object object)

如果可以计算出字符位置,那么可以直接按高度滚动,不能计算出位置的情况下。请参考这个做法:

  1. 小程序输出的时候大概走这种形式

我就懒得用wxml 写了,用 vue 大概描述一下,你大概领会一下思想

一开始的数据格式类似于

const doc = [
    "正文 xxxxxx 222 你好,这是一段示例"
]
<div>
   <template v-for="(item,index) of doc">
        <template v-if="typeof item === 'string'">
            <span :key="index">
                {{item}}
            <span>
        </template>
        <template v-else-if="typeof item === 'object' && item.type === 'search'">
            <span :key="index" class="doc_search">
                {{item.value}}
            </span>
        </template>
   </template>
</div>

经过搜索之后原来的文本拆成

const doc = [
    "正文 xxxxxx ",
    {
        type:"search",
        value:"222"
    },
    " 你好,这是一段示例"
]

大概就是这样,高亮之后 用scrollTo 的seletor 参数定位到doc_search 即可

领会一下

我喜欢麦丽素 2022-09-19 13:11:00

1、将搜索的文本高亮显示:某个区域下的innerHTML对搜索词进行替换成用标签包裹的搜索词,用于处理高亮样式和定位;

2、滚动到可视区中:使用Element.scrollIntoView()

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文