自定义悬浮气泡组件

一.常用悬浮气泡展示
在一个项目中,常常会使用点悬浮展示,而市面上悬浮tooltip的组件非常多
例如常用的antd提供的Tooltip
在这里插入图片描述

用法如下(来自于官方文档示例):

import React from 'react';
import { Button, Tooltip, ConfigProvider } from 'antd';
const text = <span>prompt text</span>;
const buttonWidth = 80;
const App = () => (<ConfigProviderbutton={{style: {width: buttonWidth,margin: 4,},}}><div className="demo"><divstyle={{marginInlineStart: buttonWidth,whiteSpace: 'nowrap',}}><Tooltip placement="topLeft" title={text}><Button>TL</Button></Tooltip><Tooltip placement="top" title={text}><Button>Top</Button></Tooltip><Tooltip placement="topRight" title={text}><Button>TR</Button></Tooltip></div><divstyle={{width: buttonWidth,float: 'inline-start',}}><Tooltip placement="leftTop" title={text}><Button>LT</Button></Tooltip><Tooltip placement="left" title={text}><Button>Left</Button></Tooltip><Tooltip placement="leftBottom" title={text}><Button>LB</Button></Tooltip></div><divstyle={{width: buttonWidth,marginInlineStart: buttonWidth * 4 + 24,}}><Tooltip placement="rightTop" title={text}><Button>RT</Button></Tooltip><Tooltip placement="right" title={text}><Button>Right</Button></Tooltip><Tooltip placement="rightBottom" title={text}><Button>RB</Button></Tooltip></div><divstyle={{marginInlineStart: buttonWidth,clear: 'both',whiteSpace: 'nowrap',}}><Tooltip placement="bottomLeft" title={text}><Button>BL</Button></Tooltip><Tooltip placement="bottom" title={text}><Button>Bottom</Button></Tooltip><Tooltip placement="bottomRight" title={text}><Button>BR</Button></Tooltip></div></div></ConfigProvider>
);
export default App;

该组件提供的api属性可进入官方文档查看
二.自定义悬浮气泡组件
如上所说,虽然市面上大部分的气泡提示组件都已经十分完善,但是在工作中,我们有时可能会遇到一些问题,比如页面样式冲突,或者项目体量大导致浮显卡顿,鼠标事件冲突等等情况导致无法使用组件库提供的组件,这个时候我们就需要自己去封装一个
优点:
1.代码体量小,性能好
2.样式可根据个人所需定制
3.不会出现样式冲突问题
4.可维护性强
思路:
气泡显示文字只需要使用鼠标移入移出事件配合css样式即可完成

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta http-equiv="X-UA-Compatible" content="IE=edge" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title></head><style>.containerbut {width: 50px;height: 20px;position: relative;top: 200px;left: 50%;text-align: center;}.hover-div {display: none;width: 400px;height: 30px;line-height: 30px;background-color: rgb(184, 184, 184);border-radius: 10px;position: absolute;top: -40px;left: calc((-400px + 50px) / 2); /* left 要计算,子元素的宽度 减去 父元素宽度 除以2 */}.triangle {width: 0;height: 0;border-top: 10px solid rgb(184, 184, 184);border-right: 10px solid transparent;border-left: 10px solid transparent;border-bottom: 10px solid transparent;position: absolute;top: 30px;left: 50%;transform: translateX(-50%);}.containerbut:hover .hover-div {display: block;}.test {width: 50px;height: 20px;position: relative;top: 100px;left: 50%;text-align: center;}.test:hover .hover-div {display: block;}</style><body><div class="containerbut">123<div class="hover-div">This is the popup div.<div class="triangle"></div></div></div><div class="test">test<div class="hover-div">This is the popup div.<div class="triangle"></div></div></div></body>
</html>

运行结果:
在这里插入图片描述

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

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

相关文章

第一讲《八大人觉经》

《八大人觉经》。诸位法师。诸位居士。阿弥陀佛。好&#xff0c;大家请放掌。 我们这次&#xff0c;大家有很殊胜的因缘&#xff0c;由于净土梵音的启请&#xff0c;大家能够暂时的放下人世的尘劳&#xff0c;来共同学习《八大人觉经》。在讲述本经之前&#xff0c;我想简单地…

mysql-MVCC

一、基础概念 1. MVCC的含义 MVCC (Multiversion Concurrency Control)&#xff0c;即多版本并发控制技术&#xff0c;它是通过读取某个时间点的快照数据&#xff0c; 来降低并发事务冲突而引起的锁等待&#xff0c; 从而提高并发性能的一种机制. MVCC 的实现,是通过保存数据…

【无刷电机学习】各种电机优势比较

目录 0 参考出处 1 有刷与无刷比较 2 交流与直流比较 3 内转子与外转子比较 4 Delta型与Y型定子绕向比较 5 低压BLDC的一些优点 0 参考出处 【仅作自学记录&#xff0c;不出于任何商业目的。如有侵权&#xff0c;请联系删除&#xff0c;谢谢&#xff01;】 维基百科…

动态规划(算法竞赛)--线性DP编辑距离

1、B站视频链接&#xff1a;E07 线性DP 编辑距离_哔哩哔哩_bilibili 题目链接&#xff1a;编辑距离 - 洛谷 #include <bits/stdc.h> using namespace std; char a[2010],b[2010]; int f[2010][2010]; int main(){scanf("%s %s",a,b);int mstrlen(a),nstrlen(b…

C++笔记:二叉搜索树(Binary Search Tree)

文章目录 二叉搜索树的概念二叉搜索树操作1. 框架搭建2. 遍历3. 查找迭代实现递归实现 4. 插入迭代实现递归实现 5. 删除迭代实现递归实现 6. 析构与销毁7. 拷贝构造与赋值重载 二叉搜索树的应用二叉搜索树的性能分析二叉搜索树模拟实现源码 二叉搜索树的概念 二叉搜索树又称二…

HL祭记汇

一.写在前面 如果说廿四10天集训&#xff0c;对于我&#xff0c;是完成了从入门&#xff08;虽然可能我比别人入门更早&#xff1f;&#xff09;到准OIer的蜕变&#xff0c;那么&#xff0c;HL7天&#xff0c;可以说是真正成为了OIer&#xff0c;虽然是被小学生、初中生&#…

pclpy KD-Tree K近邻搜索

pclpy KD-Tree K近邻搜索 一、算法原理1.KD-Tree 介绍2.原理 二、代码三、结果1.原点云2.k近邻点搜索后的点云 四、相关数据 一、算法原理 1.KD-Tree 介绍 kd 树或 k 维树是计算机科学中使用的一种数据结构&#xff0c;用于在具有 k 维的空间中组织一定数量的点。它是一个二叉…

【Flink精讲】Flink组件通信

主要指三个进程中的通讯 CliFrontendYarnJobClusterEntrypointTaskExecutorRunner Flink内部节点之间的通讯使用Akka&#xff0c;比如JobManager和TaskManager之间。而operator之间的数据传输是利用Netty。 RPC是统称&#xff0c;Akka&#xff0c;Netty是实现 Akka与Ac…

【Vue3】学习computed计算属性

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

python 提取PDF文字

使用pdfplumber&#xff0c;不能提取扫描的pdf和插入的图片。 import pdfplumberfile_path rD:\UserData\admindesktop\官方文档\1903_Mesh-Models-Overview_FINAL.pdf with pdfplumber.open(file_path) as pdf:page pdf.pages[0]print(page.extract_text()) # 所以文字prin…

【c++设计模式04】创建型2:工厂方法模式(Factory Pattern)

【c设计模式04】创建型2&#xff1a;工厂方法模式&#xff08;Factory Pattern&#xff09; 一、工厂模式二、简单工厂模式的弊端三、工厂方法模式四、UML类图五、demo六、总结 原创作者&#xff1a;郑同学的笔记 原创地址&#xff1a;https://zhengjunxue.blog.csdn.net/artic…

Spark: a little summary

转眼写spark一年半了&#xff0c;从之前写机器学习组件、做olap到后面做图计算&#xff0c;一直都是用的spark&#xff0c;惭愧的是没太看过里面的源码。这篇文章的目的是总结一下Spark里面比较重要的point&#xff0c;重点部分会稍微看一下源代码&#xff0c;因为spark是跟cli…