带有 ReactJS 的工具提示 div

IT技术 javascript html reactjs
2021-03-25 04:43:09

客观的

我有一个 div,我想让它像带有 reactjs 的工具提示一样。

HTML

<div>on hover here we will show the tooltip</div>
<div>
    <div class="tooltip_custom">this is the tooltip!!</div>
</div>

我习惯于在 angularjs 上使用ng-show带有条件的<div>,我想知道 reactjs 中是否有这样的绑定,否则我该怎么做这个功能?

谢谢

6个回答

您可以使您的组件返回以下标记

return (
  <div>
    <div onMouseOver={this.handleMouseIn.bind(this)} onMouseOut={this.handleMouseOut.bind(this)}>on hover here we will show the tooltip</div>
    <div>
      <div style={tooltipStyle}>this is the tooltip!!</div>
    </div>
  </div>
);

哪里tooltipStyle是这样分配的:

const tooltipStyle = {
  display: this.state.hover ? 'block' : 'none'
}

所以栏现在取决于组件的状态,handleMouseIn并且handleMouseOut您需要更改组件的状态,使工具提示可见。

handleMouseIn() {
  this.setState({ hover: true })
}

handleMouseOut() {
  this.setState({ hover: false })
}

这是工作示例

您可以通过这篇文章开始深入 React:Thinking in React

@sisimh 您可以使用组合,例如包装器,可以帮助您实现这一目标,而无需在多个地方重复自己。虽然这取决于您的具体要求。
2021-06-02 04:43:09
工作示例不再起作用。您需要从 Codepen 导入 React 而不是自定义 URL。
2021-06-08 04:43:09
我的意思是我不想在我的 reactjs 代码中构建 onMouseOver div,我只想在上面添加悬停行为,可行吗?
2021-06-16 04:43:09
谢谢,如果我想让外部 div 在 html 中呈现它自己的内容,我想要添加的只是向它添加悬停行为,那么说这个悬停功能可以是一个可重用的工具提示module?
2021-06-20 04:43:09

一种选择是在 CSS 中进行。它不是那么灵活,但带有如下标记:

<div className="tooltip-on-hover">Hover here</div>
<div className="tooltip">This is the tooltip</div>

你可以这样做:

.tooltip {
  ...
  visibility: hidden;  /* Or display: none, depending on how you want it to behave */
}

.tooltip-on-hover:hover + .tooltip {    /* Uses the adjacent sibling selector */
  visibility: visible;  /* Or display: block */
}

例子:

您还可以将工具提示嵌套在元素内,以便您可以使用普通的后代选择器,如.tooltip-on-hover:hover .tooltip. 您甚至可以使用 a::before::after伪元素,有关于如何执行此操作的指南。

@kojow7 如果我们在谈论 JSX,那是真的,很好。不过,我只是将其称为标记,从技术上讲,它可能只是 HTML 输出(特别是因为我的答案中没有任何内容是 React 特定的),并且它模仿了问题中所写的“HTML”。
2021-06-14 04:43:09
您应该使用className而不是class用于 React。
2021-06-22 04:43:09

安装 npm 包:

npm install react-tooltip

用法:

import ReactTooltip from "react-tooltip";

<div data-tip="msg to show" data-for='toolTip1' data-place='top'>Tooltip</div>
<ReactTooltip id="toolTip1" />
我尝试和工作就像一个魅力。感谢这个例子!!!
2021-06-11 04:43:09
2021年还在用。谢谢老板。一直想知道为什么我的条件渲染和其他各种尝试不起作用。请解释使用数据属性背后的基本原理,为什么在他们的 React ToolTip 文档中没有?太感谢了
2021-06-17 04:43:09

我认为无论您想显示为工具提示,只需将其添加到要显示它的 div 的“标题”。

例如:


<div title="I am the tooltip text">I am the div where you should hover</div>

但是,如果它是一个定制设计的 div,则按照之前给出的答案进行。

您还可以使用React Mapple ToolTip易于使用和自定义的,并且还带有预定义的主题。

免责声明:我是这个库的作者

在此处输入图片说明 reactjs-mappletooltip

错过了那里的披露,因为它是您的图书馆。方便,但与 div 的精细对齐有点混乱。
2021-06-12 04:43:09