#DOM
9개의 게시물
AdSense 빈 광고 슬롯 숨기기 — unfilled 속성만 믿었다가 망한 이야기
🤖 1486 in / 1658 out / 3144 total tokens AdSense 광고 슬롯이 빈 박스로 렌더링되는 버그를 고쳤다. 로컬 개발 환경이나 미승인 도메인에서는 AdSense가 data-ad-status="unfilled" 속성을 아예 안 붙이는 경우가 있다. 기존 코드는 이 속성값만 검사하고 있어서, 빈 90px 박스가 고스란히 노출
빈 광고 슬롯 hide 조건 robust화 — status + offsetHeight 검사
🤖 1486 in / 1346 out / 2832 total tokens AdSense 빈 슬롯이 로컬 개발환경이랑 미승인 도메인에서 계속 떡하니 노출되는 이슈를 잡았다. 기존엔 data-ad-status==="unfilled"만 체크해서 hide했는데, AdSense가 이 속성을 아예 안 붙이는 케이스가 꽤 있다. localhost, 승인 안 된 도
AdSense 빈 광고 슬롯이 남기는 90px 빈 박스 자동 숨김 처리
🤖 1486 in / 1457 out / 2943 total tokens AdSense가 광고를 내주지 않으면 ins 요소에 data-ad-status="unfilled"를 세팅하는데, 문제는 .ad-container에 잡아둔 min-height: 90px가 그대로 남아서 유저한테 하얀 빈 박스가 보인다는 거다. CLS(Cumulative Layout
자유 모드 방 만들기 버튼 회귀 수정 — 3줄 지워서 2커밋 전 실수 되돌리기
🤖 1555 in / 1628 out / 3183 total tokens 자유 모드에서 방이 하나라도 있으면 추가 방을 만들 방법이 없었다. 헤더의 + 버튼이 숨겨진 채로 굳어있었고, 빈 목록 안내에만 달려있던 버튼은 목록이 비었을 때만 보이니까. 원인은 두 커밋 전의 충돌이었다. 171465b에서 freeCreateRoomBox 안에 방 만들기 버
자유 모드 방 만들기 버튼이 방 생기면 사라지던 회귀 수정
🤖 1555 in / 1444 out / 2999 total tokens 자유 모드에서 방이 하나라도 존재하면 방 만들기 버튼이 화면에서 완전히 증발하던 버그를 수정했다. 원인은 단 3줄이었다. 회귀 경로가 재밌다. 커밋 171465b에서 freeCreateRoomBox 내부 버튼과 헤더 버튼이 중복이라 판단해 헤더 쪽을 숨겼다. 그 뒤 커밋 d1f
다이렉트 링크 fast path로 새로고침 5초→1초 줄이기 + 초대 바 위치 수정
🤖 2097 in / 1491 out / 3588 total tokens 같은 탭에서 새로고침할 때마다 5초씩 기다리는 게 너무 답답해서 sessionStorage에 활성 방 정보를 캐시해두고, 매칭되면 게이트를 우회해서 바로 게임 페이지로 리다이렉트하는 fast path를 추가했다. UE5에서 로딩 스크린 최적화할 때도 항상 드는 생각인데, 캐시 가
경마 거리 인디케이터가 화면 밖에서 렌더링되던 버그 수정
🤖 1438 in / 1737 out / 3175 total tokens 트랙 너비가 7350px인 경마 게임에서 우측 거리 인디케이터가 right: 2px로 배치돼 있었다. 트랙 컨테이너 자체가 7350px짜리 너비를 가지니까 right: 2px는 트랙의 오른쪽 끝에서 2px 떨어진 지점, 즉 화면 밖 7000px 넘게 떨어진 곳에 요소가 붙어 있던
경마 실시간 순위 패널, HTML 하드코딩 떼고 JS에서 동적 생성으로 이관
🤖 1605 in / 1740 out / 3345 total tokens horse-race-multiplayer.html에 인라인으로 박혀있던 liveRankingPanel div를 싹 지우고, js/horse-race.js의 startRaceAnimation에서 동적으로 생성하도록 바꿨다. 렌더링 결과는 동일하고, 레이스 중 실시간 순위 표시 기능
경마 실시간 순위 패널, HTML 하드코딩에서 JS 동적 생성으로 리팩토링
🤖 1605 in / 1699 out / 3304 total tokens horse-race-multiplayer.html에 정적으로 박혀있던 liveRankingPanel div를 싹 걷어내고, js/horse-race.js의 startRaceAnimation 함수 내부에서 동적으로 생성하도록 바꿨다. 레이스 시작할 때 필요한 순간에만 createE