Помогите с HTML, CSS, копирование текста нажатием на блок
Блок внутри которого еще 4 блока, наведя на один из них появляется текст, нужно сделать так, чтобы по нажатию на появившийся текст он копировался в буфер.
.block-palitra{
min-height: 240px;
margin: 10px;
box-shadow: 0 0 2px #2c2c2c;
border-radius: 5px;
}
.block-palitra1{
border-top-left-radius: 5px;
border-top-right-radius: 5px;
min-height: 90px;
padding: 2px 10px;
}
.block-palitra2{
min-height: 70px;
padding: 2px 10px;
}
.block-palitra3{
min-height: 50px;
padding: 2px 10px;
}
.block-palitra4{
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
min-height: 30px;
padding: 2px 10px;
}
.blocking{
background: rgba(0,0,0,0.3);
color: white;
display:none;
text-align: center;
max-width: 120px;
border-radius: 5px;
}
.block-palitra1:hover .blocking{
display:block;
}
.block-palitra2:hover .blocking{
display:block;
}
.block-palitra3:hover .blocking{
display:block;
}
.block-palitra4:hover .blocking{
display:block;
}
.nav-link-transition{
transition: opacity 10s linear;
}
<div class="block-palitra">
<div class="block-palitra1" style="background-color: #f0f5f9"> <div class="blocking">#f0f5f9</div></div>
<div class="block-palitra2" style="background-color: #c9d6df"> <div class="blocking">#c9d6df</div></div>
<div class="block-palitra3" style="background-color: #52616b"> <div class="blocking">#52616b</div></div>
<div class="block-palitra4" style="background-color: #1e2022"><div class="blocking">#1e2022</div></div>
</div>
Ответы (1 шт):
Автор решения: Sevastopol'
→ Ссылка
Возможно, вам нужно это:
function copytext(element) {
var range, selection;
if (document.body.createTextRange) {
range = document.body.createTextRange();
range.moveToElementText(element);
range.select();
} else if (window.getSelection) {
selection = window.getSelection();
range = document.createRange();
range.selectNodeContents(element);
selection.removeAllRanges();
selection.addRange(range);
}
//console.log(range);
try {
document.execCommand("copy");
alert("Скопировано в буфер обмена: " + selection);
} catch (err) {
alert("Невозможно скопировать текст");
}
}
.block-palitra {
min-height: 240px;
margin: 10px;
box-shadow: 0 0 2px #2c2c2c;
border-radius: 5px;
}
.block-palitra1 {
border-top-left-radius: 5px;
border-top-right-radius: 5px;
min-height: 90px;
padding: 2px 10px;
}
.block-palitra2 {
min-height: 70px;
padding: 2px 10px;
}
.block-palitra3 {
min-height: 50px;
padding: 2px 10px;
}
.block-palitra4 {
border-bottom-left-radius: 5px;
border-bottom-right-radius: 5px;
min-height: 30px;
padding: 2px 10px;
}
.blocking {
background: rgba(0, 0, 0, 0.3);
color: white;
display: none;
text-align: center;
max-width: 120px;
border-radius: 5px;
}
.block-palitra1:hover .blocking {
display: block;
}
.block-palitra2:hover .blocking {
display: block;
}
.block-palitra3:hover .blocking {
display: block;
}
.block-palitra4:hover .blocking {
display: block;
}
.nav-link-transition {
transition: opacity 10s linear;
}
textarea {
position: fixed;
top: 20px;
right: 30px;
}
<div class="block-palitra">
<div class="block-palitra1" style="background-color: #f0f5f9">
<div class="blocking" onclick="copytext(this)">#f0f5f9</div>
</div>
<div class="block-palitra2" style="background-color: #c9d6df">
<div class="blocking" onclick="copytext(this)">#c9d6df</div>
</div>
<div class="block-palitra3" style="background-color: #52616b">
<div class="blocking" onclick="copytext(this)">#52616b</div>
</div>
<div class="block-palitra4" style="background-color: #1e2022">
<div class="blocking" onclick="copytext(this)">#1e2022</div>
</div>
</div>
<textarea name="result" cols="40" rows="3" placeholder="Проверить"></textarea>