(通用0bug)纯原生实现一个类似浏览器搜索功能(ctrl + f)

如果可以实现记得点赞分享,谢谢老铁~

先看下效果图

在这里插入图片描述

一、问题的描述

由于公司业务需要在搜索框中,
模拟 Ctrl + F 的搜索功能,支持自选可搜索区域范围,
且支持回车查看下一个,上下查看,自动滚动定位

帮助小白解决不会快捷键操作的搜索。

二、问题的解决方案

首先查看浏览器自带的 api 啥的,抱歉,没有,找不到~

三、先看下原来网站的效果

将原网站下载下来的脚本命名为 find5.js
直接引入,即可得到下面的搜索框效果

<script type="text/javascript" language="JavaScript" src="find5.js"></script>

在这里插入图片描述

基于一个网站,具体参考网址是:
链接: <

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论
好的,下面是一个完整的JS原生实现穿梭框能够左右来回穿梭无bug的代码: HTML部分: ``` <div> <select id="left" multiple> <option value="1">选项1</option> <option value="2">选项2</option> <option value="3">选项3</option> <option value="4">选项4</option> <option value="5">选项5</option> </select> <button id="leftToRight">></button> <button id="rightToLeft"><</button> <select id="right" multiple> </select> </div> ``` JS部分: ``` var leftSelect = document.getElementById("left"); var rightSelect = document.getElementById("right"); var leftToRightBtn = document.getElementById("leftToRight"); var rightToLeftBtn = document.getElementById("rightToLeft"); leftToRightBtn.addEventListener("click", function() { for (var i = 0; i < leftSelect.options.length; i++) { var option = leftSelect.options[i]; if (option.selected) { rightSelect.appendChild(option); i--; } } }); rightToLeftBtn.addEventListener("click", function() { for (var i = 0; i < rightSelect.options.length; i++) { var option = rightSelect.options[i]; if (option.selected) { leftSelect.appendChild(option); i--; } } }); ``` 这段代码实现了将左侧的选项移动到右侧或者将右侧的选项移回到左侧。其中,左右两个select素都设置了multiple属性,表示可以多选。通过循环遍历左侧和右侧的选项,判断是否被选中,从而实现移动。由于在移动过程中会改变options的长度,因此需要在移动完成后将变量i减1,以防止漏掉某些选项。这样就可以实现一个简单的穿梭框了,而且没有bug
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端加油站

你遇到的坑将由我来踩

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值