You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为JavaScript复制功能添加点击触发的鼠标旁'Copied!'提示动画

实现点击后鼠标附近显示Copied提示方案

第一步:添加提示样式(CSS代码)

.copy-toast {
  position: fixed;
  padding: 6px 12px;
  background: rgba(0, 0, 0, 0.8);
  color: #ffffff;
  border-radius: 4px;
  font-size: 14px;
  pointer-events: none;
  z-index: 99999;
  animation: fadeInOut 2s ease forwards;
}

@keyframes fadeInOut {
  0% { opacity: 0; transform: translateY(10px); }
  15% { opacity: 1; transform: translateY(0); }
  85% { opacity: 1; transform: translateY(0); }
  100% { opacity: 0; transform: translateY(-10px); }
}

第二步:替换原有复制功能JS代码

function copy(e, that) {
  // 保留原有复制逻辑
  var inp = document.createElement('input');
  document.body.appendChild(inp);
  inp.value = that.textContent;
  inp.select();
  document.execCommand('copy', false);
  inp.remove();

  // 新增Copied提示生成逻辑
  const toast = document.createElement('div');
  toast.className = 'copy-toast';
  toast.textContent = 'Copied!';
  // 定位到鼠标点击位置,加10px偏移避免遮挡指针
  toast.style.left = e.clientX + 10 + 'px';
  toast.style.top = e.clientY + 10 + 'px';
  document.body.appendChild(toast);

  // 2秒后自动移除提示元素
  setTimeout(() => {
    toast.remove();
  }, 2000);
}

第三步:修改点击触发的调用写法

<!-- 示例链接调用方式,需要传入event事件对象 -->
<a href="javascript:void(0)" onclick="copy(event, this)">你要复制的文本内容</a>

自定义调整说明

  • 可修改CSS中.copy-toast的属性调整提示框的外观、字号、颜色等
  • 可修改@keyframes的参数调整动画的运动轨迹和过渡效果
  • 可调整JS代码中e.clientX + 10、e.clientY + 10的数值修改提示框和鼠标指针的相对位置
  • 若要修改提示显示时长,需要同步修改CSS中动画总时长和JS中setTimeout的毫秒数

内容的提问来源于stack exchange,提问作者Shabih-ul-Hassan Raza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 18:06:04