Knowledge/HTML & CSS
클릭시 스크롤이 상단으로 이동하거나 주소 뒤에 #이 붙으면 범인은 A태그!
TakeKnowledge
2019. 8. 22. 23:02
반응형
어딘가를 클릭했는데 갑자기 스크롤이 상단으로 이동하거나
다른 주소로 이동했는데
이렇게 URI 가장 뒤에 #이 붙어있는 걸 본적 있는가?
이 두가지 현상의 범인은 모두 a태그다.
정확히는 <a href="#"> 형태의, #으로 막아놓은 A태그
보통 A태그 형태만 쓰고 기능은 자바스크립트로 구현하고 싶을 때 이런식으로 #으로 A태그의 기능을 막곤 하는데
#이 나름의 기능을 해버리기 때문에 원래 의도와 다르게 작동하는 것이라고 할 수 있다.
해결 방법은 여러가지가 있고 다 간단한데 ( 참고 : https://blog.mywebstyle.pe.kr/?p=65 )
필자는 <a href = "javascript:void(0);" > 의 형태로 a태그 기능을 막는 걸 선호하고 추천한다.
뭐 특별한 이유는 없지만 애초에 A태그를 #으로 막는다는 것 자체가 귀차니즘의 산물인데
굳이 javascript 단에 가서 return false 나 preventDefault 같은 걸 쓰긴 번거롭고,
그렇다고 onclick을 html 태그 안에 집어넣는 건 표준 위반 같아서 괜히 찝찝하기 때문.
물론 이렇게 ( https://dreambringer.tistory.com/21 ) 애초에 a태그 전체를 선택해서 preventDefault를 걸 수도 있겠지만
이렇게
상단으로 가기 기능을 쉽게 구현할 수 있는 편안함이 사라질 수도 있으니
전부 막기보단 그냥 <a href = "javascript:void(0);" > 쓰자! 추천!
반응형