이번에는 티스토리 블로그에서 방문자가 댓글이 얼마나 달렸는지 한눈에 파악하고,
바로 댓글을 확인하러 스크롤 이동할 수 있는 버튼을 만들어서 이전 글에 플로팅 div 에 적용해보려고 합니다.
아래는 이전 글 입니다.
티스토리 플로팅 div 에 좋아요(공감) 버튼 연동해보기
이전 글에서 티스토리 게시글에만 등장하는 플로팅 UI 를 만들어봤습니다.이번에는 여기에 티스토리 게시글 공감 버튼을 기능을 유지한채로 그대로 옮겨보도록 하겠습니다 ! 티스토리 게시글
devbrew.tistory.com
먼저 개발자 도구를 이용해 티스토리의 댓글 구조를 확인해봤습니다.

<div data-tistory-react-app="Comment">
<div class="tt-comment-cont">
<div class="tt-box-total">
<span class="tt_txt_g">댓글</span>
<span class="tt_num_g">0</span>
</div>
- data-tistory-react-app="Comment" : 댓글 전체 영역
- .tt_num_g : 댓글 수가 표시되는 숫자 요소
이렇게 DOM 구조에서 요소와 요소가 같는 클래스명을 확인해볼 수 있었습니다.
1. 댓글 수가 보이는 커스텀 버튼 만들기
const commentBtn = document.createElement('button');
commentBtn.id = 'comment-button';
commentBtn.textContent = '💬 댓글';
우선 createElement 를 통해 버튼을 만들고, id 값과 버튼에 들어갈 텍스트를 지정해줍니다.
기본 텍스트를 미리 설정해주는 이유는 댓글 수와 함께 텍스트를 정해줘도 되지만
아주 짧지만 지연시간이 필요하기 때문에 사용자 UX 를 위해서 미리 넣어봤습니다.
const commentWrapper = document.createElement('div');
commentWrapper.className = 'wrap_btn';
commentWrapper.appendChild(commentBtn)
이후 버튼에 스타일과 기능을 편하게 적용하기 위해 div 로 감싸줍니다.
className 은 자유롭게 설정할 수 있습니다.
(저는 티스토리 외부 css 를 그대로 사용하기 위해 wrap_btn 을 사용했습니다)
setTimeout(() => {
const numEl = document.querySelector('[data-tistory-react-app="Comment"] .tt_num_g');
const commentCount = numEl ? numEl.textContent.trim() : '0';
commentBtn.textContent = `💬 댓글 ${commentCount}`;
}, 200);
이제 querySelector() 로 .tt_num_g 를 찾아 댓글 수를 가져옵니다.
숫자가 늦게 로딩될 수 있어 setTimeout() 으로 아주 짧은 대기 시간을 주어 안정성을 높혔습니다.
댓글 수 조회에 실패하면 기본값으로 0 을 표시하게 됩니다.
2. 버튼 클릭 시 댓글 영역으로 스크롤 이동
commentBtn.addEventListener('click', () => {
const commentArea = document.querySelector('[data-tistory-react-app="Comment"]');
if (commentArea) {
commentArea.scrollIntoView({ behavior: 'smooth' });
}
});
querySelector 로 댓글 영역 요소를 지정해준 후 클릭 시 scrollIntoView() 를 이용해 해당 위치로 이동합니다
저는 behavior: 'smooth' 를 추가해줘서 부드럽게 스크롤 이동하는 느낌을 추가해줬습니다.
3. 커스텀 버튼을 플로팅 div 에 삽입하기
window.addEventListener('load', () => {
const commentWrapper = document.createElement('div');
// 작성했던 코드
insertFloatingBar(likeWrapper, commentWrapper);
});
페이지 전체 로딩 후 실행되도록, 'load' 이벤트 내부에 작성했던 코드들을 삽입해줍니다
function insertFloatingBar(likeEl, commentEl) {
if (document.getElementById('floating-toolbar')) return;
const bar = document.createElement('div');
bar.id = 'floating-toolbar';
bar.innerHTML = `<div id="floating-toolbar-inner"></div>`;
document.body.appendChild(bar);
const inner = document.getElementById('floating-toolbar-inner');
// 스타일 추가.. (이전 글 참고)
// bar.style.position = 'fixed' 등..
if (likeEl) inner.appendChild(likeEl);
if (commentEl) inner.appendChild(commentEl); // 댓글 버튼 삽입
}
그 후 파라미터로 댓글 버튼을 받아 appendChild 로 기존 플로팅 div 내부에 삽입해주면 됩니다.
저는 이전 글에서 만든 플로팅 바에서 공감 버튼 옆에 배치할 목적으로 구조를 작성했습니다.

이렇게 현재 댓글 수가 표시되고 클릭하면 댓글 영역으로 이동하는 버튼을 완성해봤습니다 !
'자기개발 > 블로그' 카테고리의 다른 글
| 티스토리 단축키의 종류와 작동 원리 그리고 무력화 방법 소개 (0) | 2025.08.12 |
|---|---|
| 티스토리 플로팅 div 에 좋아요(공감) 버튼 연동해보기 (1) | 2025.07.19 |
| 티스토리 게시글 본문에만 등장하는 플로팅 div 만들어보기 (1) | 2025.07.17 |