클릭하면 "복사했습니다!"라는 풍선을 표시하는 방법
아무래도 7note입니다! 클릭으로 풍선을 표시하는 방법
모르는 일이 있어 조사물을 하고 있을 때에, 원 클릭으로 카피할 수 있는 방법을 이전 기재했습니다.
【초보자라도 알 수 있다】 원 클릭으로 텍스트를 복사할 수 있는 버튼을 만드는 방법
이번에는 한층 더 풍선과 조합해 이러한 움직임을 넣습니다.
출처
index.html<p>枠内をクリックするだけでコピーできます。</p>
<div class="copycode"><input type="text" value="1234" readonly><span>コピーしました!</span></div>
style.css.copycode {
position: relative; /* バルーンを表示するための基準値とする */
display: inline-block; /* インラインブロック要素にする */
}
.copycode span {
opacity: 0; /* 最初は透明にして見えなくする */
position: absolute; /* 表示を相対位置にする */
top: 0px; /* 上から0pxの位置でかつ */
right: -5px; /* 右から-5pxの位置に表示 */
color: #fff; /* 文字色を白に指定 */
background: rgba(0,0,0,0.5); /* 背景色を半透明の黒にする */
padding: 2px 5px; /* 適度な余白を指定 */
transform: translate(100%); /* 右側に出したかったので、バルーンの大きさ分右にずらす */
}
.copycode input:focus + span {
animation: fade-out 2s ease-in; /* inputが選択状態になったときにだけアニメーションを1回実行する */
}
@keyframes fade-out {
0% {visibility: visible; opacity: 1;} /* 最初は表示して、 */
100% {visibility: hidden; opacity: 0;} /* フェードアウトする */
}
script.js$(function(){
$(".copycode").on("click", function(){ // .copycodeがクリックされた時
$(this).children("input").select(); // クリックされた要素の中にあるinputを選択状態にする
document.execCommand("Copy"); // 選択しているテキストをクリップボードにコピーする
});
});
※jQuery를 사용하고 있습니다.jQuery란 무엇입니까? 그렇다면 여기
해설
실제 사본 처리는 jQuery로 작성됩니다.
복사했습니다. 텍스트는 CSS에서만 쓸 수 있습니다.
의사 선택기는 :focus
라는 선택 상태인지 여부를 결정하여 CSS를 분리할 수 있습니다.
이것을 이용해, 클릭했을 때에 js를 움직이면서 동시에 CSS측에서 애니메이션을 움직이는 구조로 되어 있습니다.
또, input 요소에 readonly
를 태그에 붙이고 있습니다만, 이것은 편집 불가로 하는 것입니다. 실수로 복사해 주었으면 하는 내용이 사라져 버리거나 재기록되어 버리지 않게 하기 위해서 넣고 있습니다. 사용하는 장면에 따라 지워 이용하십시오.
요약
그 밖에도 다양한 것에 유용할 수 있을 것 같기 때문에, 또 아이디어가 굳어지면 기사로 하고 싶습니다.
소마츠!
~ Qiita에서 매일 게시 중!! ~
【초보자용】WEB 제작의 조금 테크 모임
Reference
이 문제에 관하여(클릭하면 "복사했습니다!"라는 풍선을 표시하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/7note/items/bfe36b8fce2206eb824f
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<p>枠内をクリックするだけでコピーできます。</p>
<div class="copycode"><input type="text" value="1234" readonly><span>コピーしました!</span></div>
.copycode {
position: relative; /* バルーンを表示するための基準値とする */
display: inline-block; /* インラインブロック要素にする */
}
.copycode span {
opacity: 0; /* 最初は透明にして見えなくする */
position: absolute; /* 表示を相対位置にする */
top: 0px; /* 上から0pxの位置でかつ */
right: -5px; /* 右から-5pxの位置に表示 */
color: #fff; /* 文字色を白に指定 */
background: rgba(0,0,0,0.5); /* 背景色を半透明の黒にする */
padding: 2px 5px; /* 適度な余白を指定 */
transform: translate(100%); /* 右側に出したかったので、バルーンの大きさ分右にずらす */
}
.copycode input:focus + span {
animation: fade-out 2s ease-in; /* inputが選択状態になったときにだけアニメーションを1回実行する */
}
@keyframes fade-out {
0% {visibility: visible; opacity: 1;} /* 最初は表示して、 */
100% {visibility: hidden; opacity: 0;} /* フェードアウトする */
}
$(function(){
$(".copycode").on("click", function(){ // .copycodeがクリックされた時
$(this).children("input").select(); // クリックされた要素の中にあるinputを選択状態にする
document.execCommand("Copy"); // 選択しているテキストをクリップボードにコピーする
});
});
Reference
이 문제에 관하여(클릭하면 "복사했습니다!"라는 풍선을 표시하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/7note/items/bfe36b8fce2206eb824f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)