javascript - 通过 Javascript 代码成功复制时显示复制的工具提示
问题描述
首先,我是 javascript/HTML 的初学者,并成功创建了一个复制函数,其中的值
标签在按钮按下时被复制。
这是到目前为止的代码:
Javascript:
<script>
var copyEmailBtn = document.querySelector('.emoji-copy-button');
copyEmailBtn.addEventListener('click', function(event) {
// Select the email link anchor text
var emailLink = document.querySelector('.emoji-copy');
var range = document.createRange();
range.selectNode(emailLink);
window.getSelection().addRange(range);
try {
// Now that we've selected the anchor text, execute the copy command
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copy email command was ' + msg);
} catch(err) {
console.log('Oops, unable to copy');
}
// Remove the selections - NOTE: Should use
// removeRange(range) when it is supported
window.getSelection().removeAllRanges();
});
</script>
HTML:
<div class="copy-emoji-section">
<p class="emoji-copy-text" id="">Copy Emoji</p>
<p class="emoji-copy" id="emoji_copy"></p>
<button class="emoji-copy-button" id="emoji_copy_button">Copy Emoji</button>
</div>
复制功能工作正常,但我想在该文本字段下方显示一个工具提示,说明内容已被复制。我不知道如何使它工作
帮助表示赞赏!:)
解决方案
像这样将您的工具提示 HTML 放在父 div 中 -
<div class="copy-emoji-section">
<div>
<p class="emoji-copy-text" id="">Copy Emoji</p>
<p class="emoji-copy" id="emoji_copy"></p>
<button class="emoji-copy-button" id="emoji_copy_button">Copy Emoji</button>
</div>
<div class="your-tooltip">...</div>
</div>
风格
.copy-emoji-section {
position: relative;
}
.your-tooltip {
opacity: 0;
position: absolute;
bottom:0;
transition: all .3s;
}
.your-tooltip.show {
opacity: 1;
}
在您的 js 中,您需要将 .show 类附加到 .your-tooltip html,如下所示:
var copyEmailBtn = document.querySelector('.emoji-copy-button');
var yourToolTip = document.querySelector('.your-tooltip');
copyEmailBtn.addEventListener('click', function(event) {
// Select the email link anchor text
var emailLink = document.querySelector('.emoji-copy');
var range = document.createRange();
range.selectNode(emailLink);
window.getSelection().addRange(range);
try {
// Now that we've selected the anchor text, execute the copy command
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
// Add the .show class when successful.
if(successful){
yourToolTip.classList.add('.show');
}
console.log('Copy email command was ' + msg);
} catch(err) {
console.log('Oops, unable to copy');
}
// Remove the selections - NOTE: Should use
// removeRange(range) when it is supported
window.getSelection().removeAllRanges();
});
推荐阅读
- delphi - Corel Paradox ODBC 驱动程序
- google-apps-script - Apps 脚本 - UrlFetchApp.fetch {url, method: "GET"} 到 gzip 失败,代码为 406
- android - 锁屏中的前台服务通知
- reactjs - debounce react-jsonschema-form 验证函数
- python - str.split 错误列必须与键长度相同,多列
- android - 如何修改 TypeConverter,以便我可以使用 kotlin 解析 Room 中的复杂数据
- php - PHP If-Else 不适用于比较文件内容
- python - 如果在 QMessageBox 中单击 Yes 按钮,则打印一些东西
- node.js - 图像 url 更新后删除原始图像
- c++ - 我试图在 C++ 中的数组末尾插入一个元素。为什么这种方法不起作用?