javascript - 选择文本时显示工具提示

标签 javascript html css

选择文本后,我想在底部显示一个工具提示,上面写着“已复制!”并且工具提示必须位于选择的中心。虽然我不确定如何实现工具提示以在选择后显示。这是我到目前为止所做的...

HTML

<p>
   <span class="selectable" tooltip="Copied!" tooltip-position='bottom'>
    Some lines of code
   <span>
</p>

CSS(用于工具提示)

[tooltip]{
  position:relative;
  display:inline-block;
}
[tooltip]::before {
    content: "";
    position: absolute;
    top:-6px;
    left:50%;
    transform: translateX(-50%);
    border-width: 4px 6px 0 6px;
    border-style: solid;
    border-color: rgba(0,0,0,0.9) transparent transparent;
    z-index: 99;
    opacity:0;
}
[tooltip-position='bottom']::before{
  top:100%;
  margin-top:8px;
  transform: translateX(-50%) translatey(-100%) rotate(-180deg)
}
[tooltip]::after {
    content: attr(tooltip);
    position: absolute;
    left:50%;
    top:-6px;
    transform: translateX(-50%)   translateY(-100%);
    background: rgba(0,0,0,0.9);
    text-align: center;
    color: #fff;
    padding:4px 2px;
    font-size: 12px;
    min-width: 80px;
    border-radius: 5px;
    pointer-events: none;
    padding: 4px 4px;
    z-index:99;
    opacity:0;
}
[tooltip-position='bottom']::after{
  top:100%;
  margin-top:8px;
  transform: translateX(-50%) translateY(0%);
}

[tooltip]:active::after,[tooltip]:active::before {
   opacity:1
}

任何帮助将不胜感激。普通 javascript 也是首选。

最佳答案

这里有一个简单的解决方案

function getTooltip(e) {
  e.stopPropagation();
  var tar = e.target.getBoundingClientRect();
  $('.tooltip').css({
    top: tar.bottom,
    left: tar.y
  }).show();
}

$(document).on("click", function(e) {
  e.stopPropagation();
  $('.tooltip').hide();
});
.tooltip {
  position: fixed;
  padding: 5px;
  border: 1px solid #474747;
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>
   <span class="selectable" onClick="getTooltip(event)">
      Some lines of code
   <span>
</p>

<div class="tooltip">
  Copied!!!
</div>

希望对您有所帮助。

关于javascript - 选择文本时显示工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50341939/

相关文章:

html - 在高度为 100% 的 Bootstrap 4 flex 容器上填充

html - 两行之间文本的 HTML 和 CSS 代码是什么?

css - 在 WordPress TwentyTen 主题的子项中覆盖 CSS 未生效

javascript - D3 将值显示为右轴上的标签

javascript - NodeJS Restify API 缓存最佳实践

javascript - 浏览器密码自动填充的 DOM 事件?

html - Dreamweaver中正则表达式注释掉css

html - css中的 Angular 设计

css - 将 `filter: brightness()` 与伪元素一起使用会破坏绝对定位?

javascript - 在 V8 中,为什么预分配数组消耗更少的内存?