他のよりプロフェッショナルなブログ システムを参照すると、コード ブロックにコードのコピー ボタンがあります。コードブロック全体をすばやくコピーするコード。だから、この機能を自分のブログにも追加したいのです。 注: Chrome テストに合格しました。他のブラウザはテストされていません。 実装のアイデア: 1. ページが読み込まれたら、jsを使用して各preタグに「コードをコピー」ボタンを追加します。 2. ボタンにクリックイベントを追加します。クリックイベントの機能は、コードブロックの内容をコピーすることです。 実装コード: css部分では、btn-pre-copyはjsを使用してpreタグ内に追加された「コードをコピー」ボタンです。 CSS の役割は、pre タグの右上隅に表示されるようにすることです。ここでは、preタグとボタンの位置属性に注意する必要があります。 .content pre{ 位置: 相対的; 背景色: #f5f5f5; 境界線: 1px 実線 #ccc; 境界線の半径: 4px; パディング: 10px; } pre .btn-pre-copy{ -webkit-user-select: なし; -moz-user-select: なし; -ms-user-select: なし; -khtml-ユーザー選択: なし; ユーザー選択: なし; 位置: 絶対; 上: 10px; 右: 12px; フォントサイズ: 12px; 行の高さ: 1; カーソル: ポインタ; 色: hsla(0,0%,54.9%,.8); トランジション: カラー .1s; } js 部分は主に pre タグにボタンを追加し、コピー部分を実装します。ここでのコピー部分の実装は、最初に一時ノード textarea をインスタンス化し、次にこの一時ノードに pre のコンテンツを設定し、次にコピーするコンテンツを選択し、最後にノードを破棄することです。特定の参照コード。 js部分はjqueryに依存します $(関数(){ //コード要素の各文字列にコピー コード ノードを追加します。let preList = $(".content pre"); for (let pre of preList) { //各コード ブロックに「コードをコピー」ボタンを追加します。let btn = $("<span class=\"btn-pre-copy\" onclick='preCopy(this)'>コードをコピー</span>"); btn.prependTo(pre); } }); /** * コピーコード操作を実行する * @param obj */ 関数 preCopy(obj) { //コピーを実行 let btn = $(obj); pre = btn.parent() とします。 //コピー機能を実現するため。一時的なテキストエリアノードを追加します。コンテンツをコピーするために使用します let temp = $("<textarea></textarea>"); //コンテンツをコピーするときにボタンのテキストをコピーしないでください。まず一時的に空のbtn.text(""); temp.text(pre.text()); temp.appendTo(pre); temp.select(); document.execCommand("コピー"); temp.remove(); //ボタン名を変更します btn.text("コピーが成功しました"); //一定時間後にボタン名を元に戻す setTimeout(()=> { btn.text("コードをコピー"); },1500); } 以下は gitee の簡単なデモです。デモ例: オンラインテスト: http://demo.jb51.net/js/2021/code_copy/ これで、ウェブサイトコードブロックのpreタグにコピーコードボタンコードを追加する方法についての記事は終了です。より関連性の高いコードのハイライトとコピーコード機能の追加内容については、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。 |
<<: CSS3 でテキスト ストロークを実装する 2 つの方法 (要約)
>>: IE8を閲覧するときにウェブサイトが自動的にIE7互換モードを使用するようにする
1. Packetdrillのコンパイルとインストールソースコードリンク https://githu...
関連文書この記事の一部は、https://www.cnblogs.com/zhongchao666/...
興味深い発見:合計 1000 件のレコードを含むテーブルがあります。クエリ ステートメントは次のよう...
MyISAM と InnoDB は、MySQL で最も一般的なストレージ エンジンです。前回の記事で...
目次1. 左端接頭辞原則2. 表に戻る3. インデックスプッシュダウン序文:インデックス プッシュダ...
黄金律プロジェクトに何人の人が取り組んでいるかに関係なく、すべてのコード行が同じ人によって書かれたよ...
私はここでCentOS 7 64ビットシステムを使用しています。CentOS 64ビットシステムを試...
フォルダを作成するディレクトリ構造: dabaots npm init -yを初期化して packa...
目次1. 背景2. バーチャルリストとは何か3. 関連概念の紹介4. 仮想リストの実装4.1 ドライ...
序文Zabbix は最も主流のオープンソース監視ソリューションの 1 つです。導入自体は難しくありま...
Ubuntu が今日のデスクトップ ユーザーの間で最も人気のある Linux オペレーティング シス...
1. 重複行を見つける blog_user_relation a から * を選択 WHERE (...
WeChat ミニプログラム - QR コード ジェネレーターダウンロード: weapp-qrcod...
序文MySQL の構文は誰にとっても難しいものではないと思いますが、この記事では主に MySQL の...
目次序文事例: JD.com の虫眼鏡効果の模倣オフセットシリーズクライアントシリーズスクロールシリ...