vue3 搜索框 相关搜索内容 搜索词变色

html 

<!-- 搜索框 -->
<div class="input"><input type="text" v-model="search_content" @input="replace_text(search_content)"@focus="search_show = true, replace_text(search_content)" @blur="search_show = false":placeholder="search_placeholder"><div class="icon"@click="navigateTo({ path: '/home/searchDetails/' + (search_content ? search_content : search_placeholder) })"><i class="iconfont icon-search" style="color:#fff;font-size:20px"></i></div><!-- 搜索列表 --><div class="search_ul" v-if="search_show"><div class="li" v-for="item, i in search_list" :key="i"><p v-html="item"></p></div></div>
</div>

js

/**搜索内容*/
const search_content = ref("")
/**搜索框默认值 根据最近搜索推荐*/
const search_placeholder = ref("vue")
/**是否显示搜索列表*/
const search_show = ref(false)
/**搜索推荐渲染列表*/
const search_list: any = ref([])
/**历史搜索*/
const search_history: any = ref([])
/**模拟后端返回的数据*/
const search_data = ref(["搜索内容","搜索内容vue","搜索内容vue2","搜索内容vue3","搜索内容vue2和vue3","搜索内容vue3和Nuxt3",
])
/*** 修改搜索内容的文字颜色* @text 搜索内容*/
function replace_text(text: string) {console.log("搜索内容:", text);/**判断搜索内容不为空展示推荐搜索*/if (text.trim() != "") {search_list.value = []search_data.value.forEach((item: any) => {/**替换搜索内容为标签添加样式*/search_list.value.push(`${item.replaceAll(text, "<span style='color:#c4302c;font-size:16px'>" + text + "</span>")}`)})} else {/**判断搜索历史是否为空*/if (search_history.value.length != 0) {/**不为空显示历史搜索*/search_list.value = search_history.value} else {/**为空显示推荐搜索*/search_list.value = ["推荐搜索内容","前端页面怎么写","怎么让搜索的字变成红色","字变成红色的css怎么写",]}}
}

scss样式 

/**搜索框*/
/**定义主题颜色*/
$color: #c4302c;
.input {width: 234px;height: 32px;border: 2px solid $color;border-radius: 120px;position: relative;/**搜索列表*/.search_ul {position: absolute;left: 50%;bottom: -200px;transform: translateX(-50%);background-color: #fff;box-shadow: 0px 2px 20px 0px #EBEBwidth: 235px;height: 190px;overflow: hidden;border-radius: 10px;text-align: left;padding: 10px 0;.li {width: 100%;font-size: 16px;color: #909399;cursor: pointer;height: 30px;background-color: #fff;p {padding: 5px 10px;font-size: 16px;&:hover {background-color: #f0f}}}}input {position: absolute;top: 50%;left: 10px;transform: translateY(-50%);width: 70%;height: 90%;border: none;outline: none;}.icon {cursor: pointer;position: absolute;top: 50%;right: 0;transform: translate(1px, -50%);width: 44px;height: 30px;border-radius: 15px;background: $color;display: flex;justify-content: center;align-items: center;}

效果

搜索内容是写死的,搜索列表数据由后端返回,前端进行循环处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/755902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NCV4264-2ST50T3G芯片中文资料PDF数据手册引脚图规格书参数产品手册价格图片

产品概述&#xff1a; NCV4264-2 在功能和引脚上都与 NCV4264 兼容&#xff0c;具有较低的静态电流消耗。 其输出级提供 100 mA&#xff0c;输出电压精度为 /-2.0%。 100 mA 负载电流下的最大漏电压为 500 mV。它具有针对 45 V 输入瞬变、输入电源逆向、输出过电流故障和超高裸…

c语言(数据在内存中的存储)

1. 整数在内存中的存储 整数的2进制表⽰⽅法有三种&#xff0c;即原码、反码和补码 三种表⽰⽅法均有符号位和数值位两部分&#xff0c;符号位都是⽤0表⽰“正”&#xff0c;⽤1表⽰“负”&#xff0c;⽽数值位最 ⾼位的⼀位是被当做符号位&#xff0c;剩余的都是数值位。 正整…

可视化工具 Another-Redis-Desktop-Manager 的安装与使用

一,下载安装 1.简介 Redis是一种快速、高效的NoSQL数据库&#xff0c;广泛用于缓存、会话管理、消息队列等领域。为了更方便地管理Redis实例、监控Redis性能、执行Redis命令、查看Redis数据&#xff0c;许多开发者使用可视化管理工具。而其中&#xff0c;Another Redis Deskt…

关于Ansible的模块 ①

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 什么是Ansible模块 在Linux中&#xff0c;bash无论是在命令行上执行&#xff0c;还是在bash脚本中&#xff0c;都需要调用cd、l…

理论学习:outputs_cls.detach()的什么意思

在PyTorch中&#xff0c;.detach()方法的作用是将一个变量从当前计算图中分离出来&#xff0c;返回一个新的变量&#xff0c;这个新变量不会要求梯度&#xff08;requires_gradFalse&#xff09;。这意味着使用.detach()方法得到的变量不会在反向传播中被计算梯度&#xff0c;也…

知识宣传手册该怎么制作?

知识宣传手册该怎么制作&#xff1f; 制作知识宣传手册是一个很好的方式来传播知识&#xff0c;提高公众对特定主题的了解。它们不仅能帮助我们传播重要信息&#xff0c;还能激发人们的求知欲&#xff0c;推动社会的进步。那么&#xff0c;如何制作一份引人入胜的知识宣传手册…

C++_day6:2024/3/18

作业1&#xff1a;编程题&#xff1a; 以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系&#xff1a; 比喻&#xff1a;动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴子等。现在…

C语言笔记:函数与程序结构

目录 ACM金牌带你零基础直达C语言精通-课程资料 一.作用域的基本概念 二.函数 1. 函数的定义和使用 2.为什么一定要有函数结构 3.形参与实参 4.函数的声明和定义 5.递归函数 此代码中递归函数执行流程&#xff1a; 练习&#xff1a;求斐波那契数列第n项的值&#xff1a; 欧几里…

day-24 跳跃游戏 III

思路&#xff1a;dfs方法&#xff0c;从开始节点开始进行深度优先遍历&#xff0c;利用一个数组vis[]记录该位置是否被访问过&#xff0c;如果遍历到一个已经访问的位置&#xff0c;返回false 如果遍历到某位置的值为0&#xff0c;返回true code: class Solution {public boo…

json-server库的使用,实现数据模拟

项目目录 安装 npm i -g json-server0.17.4 启动单个json服务&#xff0c;在cookbook目录下执行命令&#xff1a; json-server ./mock/a.json -p 9000 待实现 使用0.17.4版本即可。

基于php高校选课系统设计与实现flask-django-python-nodejs

接着&#xff0c;本论文将设计一个基于Web的高校选课系统&#xff0c;并通过详细的需求分析和系统架构设计来解决现有系统中存在的问题。系统的开发将采用目前流行的Web技术和数据库技术&#xff0c;并考虑系统的灵活性、安全性和易用性。最后&#xff0c;本论文将对开发出的系…

基于java的宠物信息交流平台设计(含源文件)

随着世界经济信息化、全球化的到来和互联网的飞速发展&#xff0c;推动了各行业的改革。若想达到安全&#xff0c;快捷的目的&#xff0c;就需要拥有信息化的组织和管理模式&#xff0c;建立一套合理、动态的、交互友好的、高效的“多鱼”旧物交易平台。当前的信息管理存在工作…

A Decade’s Battle on Dataset BiasAre We There Yet?

一些废话&#xff1a;好久没有做论文阅读系列的博客了&#xff0c;之前放弃是因为逐渐繁忙的学业以及论文那边实验非常的揪心&#xff0c;自己其实也看了很多论文&#xff0c;但是记的笔记不足以帮助到大家&#xff1b; 论文下载地址&#xff1a; https://arxiv.org/pdf/2403.…

组合000

题目链接 组合 题目描述 注意点 1 < n < 201 < k < n可以按 任何顺序 返回答案 解答思路 使用深度优先遍历根据传入的深度depth寻找相应的组合。因为组合中的元素不能重复&#xff0c;从小到大选择元素&#xff0c;在深度优先遍历时&#xff0c;根据上一次进入…

堆(数据结构)

堆的概念及结构 如果有一个关键码的集合K { &#xff0c; &#xff0c; &#xff0c;…&#xff0c; }&#xff0c;把它的所有元素按完全二叉树的顺序存储方式存储在一个一维数组中&#xff0c;并满足&#xff1a; < 且 < ( > 且 > ) i 0&#xff0c;1&#xff…

深入解析分布式限流

一、概述 1.1 主要解决的问题 访问请求流量远远大于服务器的负载&#xff0c;致使服务器宕机&#xff0c;导致整个服务的不可用&#xff1b;- 限流当前服务调用其他服务&#xff0c;其他服务不可用&#xff0c;导致当前服务的调用一直超时&#xff0c;进而当前服务的线程资源耗…

3D产品配置器有哪些实际的商业应用场景?

3D产品配置器在商业领域有着广泛的应用场景&#xff0c;它们不仅能够提升客户体验&#xff0c;还能帮助企业优化内部流程和加速产品开发。以下是一些具体的商业应用实例&#xff1a; 1、在线定制和销售&#xff1a;3D产品配置器允许客户在购买前根据自己的喜好定制产品&#x…

Vue.js+SpringBoot开发企业项目合同信息系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 合同审批模块2.3 合同签订模块2.4 合同预警模块2.5 数据可视化模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 合同审批表3.2.2 合同签订表3.2.3 合同预警表 四、系统展示五、核心代码5.1 查询合同…

【JAVA快速编写UI】 Java 编写一个编码转换和加解密工具,可以创建一个简单的 GUI 应用程序(例子)

EncodingDecodingTool/ ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── rockmelodies/ │ │ │ └── encodingdecodingtool/ │ │ │ ├── MainApp.java │ │ │ …

Linux安装Mysql5.7数据库

一、前置条件 系统版本&#xff1a;Linux CentOS 7.5 MySQL版本&#xff1a;mysql5.7.31 二、操作步骤 2.1、关闭mysql服务 service mysqld stop 提示使用命令&#xff1a;systemctl stop mysqld.service 2.2、grep查找已安装的mysql服务 rpm -qa | grep -i mysql 2.3、卸载…