jquery를 javascript로 바꿔보자 - fixed 활용한 플로팅 배너
2024. 3. 15. 19:58ㆍ개발/웹 관련
반응형
앞서 포스팅한 "jquery를 javascript로 바꿔보자 - 퀵스크롤(플로팅 배너) 기능" 과는 조금 다른 듯한 플로팅 배너 코드를 적어볼게요.
<div style="position:relative; margin:0 auto; width:340px; height:1200px; border:1px solid #ccc; background:url('이미지경로') no-repeat; background-size:cover">
<div id="scroll_btn" style="position:absolute; top:120px; right:10px; width:100px; height:200px; overflow:hidden; z-index:100; background:#fff; border:1px solid #ccc;">
<a href="#" style="position:absolute; top:0; width:100px; height:200px; background:#fff; border:1px solid #ccc">고정배너</a>
</div>
</div>

위 코드대로 하면 이렇게 떠있는 배너가 생성됩니다.
여기에 아래 jquery 코드를 이용해 따라다니는 플로팅 배너로 만들 수 있습니다.
<!-- 이 코드 위에 jquery js 를 불러와야 됩니다. -->
<script>
$(window).scroll(function(){
if ($(this).scrollTop() > 100) { // 스크롤 위치가 100 넘어가면
$('#scroll_btn a').css('position','fixed'); // scroll_btn > a 를 fixed 로 변경
} else {
$('#scroll_btn a').css('position','absolute');
}
});
</script>

이렇게 코드를 적용한 다음 스크롤을 내리면 배너가 fixed 로 변경되면서 화면 안쪽에 고정되어 따라다니게 됩니다.
여기서 핵심은 scroll_btn 에 position fixed 를 주는 것이 아니라 scroll_btn 안에 있는 a 태그에 스타일(css)을 적용시켜 줘야 된다는 점입니다.
만약에 scroll_btn 에 해당 css 를 주면 아래처럼 화면 밖으로 나가버리게 됩니다.

위 css 부분을 잘 살펴보시기 바랍니다.
그리고 jquery 코드를 아래처럼 javascript 로 바꿔봤습니다.
<script>
window.addEventListener('scroll', function() { // 스크롤 이벤트가 생기면
const wsy = window.scrollY; // 화면 수직 위치를 구하고
const scroll_btn = document.getElementById('scroll_btn').querySelector('a');
if (wsy > 100) { // 그 위치가 100을 넘기면
scroll_btn.style.position = 'fixed'; // 해당 엘리먼트 position 속성을 fixed 로 변경
} else {
scroll_btn.style.position = 'absolute';
}
});
</script>
주석 참고해 보시기 바랍니다.
반응형
'개발 > 웹 관련' 카테고리의 다른 글
공휴일 정보 공공데이터포털 Open API 이용하기 (33) | 2024.03.26 |
---|---|
PHPExcel 로 셀 보호 기능 추가하기 (42) | 2024.03.20 |
jquery를 javascript로 바꿔보자 - 퀵스크롤(플로팅 배너) 기능 (52) | 2024.03.14 |
jquery를 javascript로 바꿔보자 - 클릭 토글 기능 (58) | 2024.03.11 |
시놀로지(Synology) 나스 웹스테이션 계정 생성 후 서브도메인 연결 (0) | 2024.03.04 |