「続きを読む」を押すと下にサッと文字が出てくる処理の実装です。
JavaScriptを使って実装させております。
文章はChatGPTに頼んだ…
JavaScriptの[offset_height]は「details-border-box」に上下に合わせて20px分padding入れてる分を調整している
「日本語が含まれていない場合のみ処理を進めるように条件を追加しました。これにより、誤って不必要なデータを抽出しないようにしています。この処理を完了した後、次に実装するべき機能として、抽出結果を自動的にフィルタリングして重複を除去するロジックを追加する予定です。さらに、エラーハンドリングを強化することで、異常時に適切なメッセージを表示し、処理の中断やリトライを柔軟に行えるように改善したいと考えています。」
document.addEventListener('DOMContentLoaded', function() { // 全ての詳細表示の要素について処理を行う var detailLinks = document.querySelectorAll('.show-details'); detailLinks.forEach(function(detailLink) { detailLink.addEventListener('click', function() { var detailsElement = this.nextElementSibling; var offset_height = 20; // 現在の表示状態を確認して、反転させる if (detailsElement.style.maxHeight) { detailsElement.style.maxHeight = null; // リセット } else { detailsElement.style.maxHeight = detailsElement.scrollHeight + offset_height + 'px'; // 高さを設定 } }); }); });
.show-details { cursor: pointer; color: blue; text-decoration: underline; display: inline-block; } .details { max-height: 0; overflow: hidden; transition: max-height 0.3s ease-out; } .details-border-box { border: 1px solid #000000; padding: 10px; line-height: 1.5; font-size: 1.0rem; }