티스토리 뷰
컨텐츠의 갯수를 변수화
<main>
<section class="con"><h2>01</h2></section> <!--컨텐츠에 class 주기-->
<section class="con"><h2>02</h2></section>
<section class="con"><h2>03</h2></section>
<section class="con"><h2>04</h2></section>
<section class="con"><h2>05</h2></section>
</main>
let num = 0;
let inter, delta;
let count = $('.con').length; // 컨텐츠의 갯수를 변수화
$(window).on('mousewheel', function (e) {
delta = e.originalEvent.wheelDelta;
clearTimeout(inter);
inter = setTimeout(function () {
if (delta < 0) {
if (num != count-1) num++; // 페이지가 더 넘어가지 않게 하는 조건에 변수 사용
} else {
if (num != 0) num--;
}
$('main').css({
transform: `translateY(-${100 * num}vh)`
});
}, 100);
});
제이쿼리.html
html() html안의 값을 가져오거나
html(추가) html안의 요소를 추가로 변경함
for(let i = 0; i<count; i++){
$('aside').html('<a></a>'); // aside 태그 안에 a태그가 넣어짐
}
제이쿼리.append
for(let i = 0; i<count; i++){
$('aside').append('<a></a>'); // .append를 사용 > 추가
}
a태그를 추가하고 페이지에 맞춰 내비게이터가 활성화 되게 하기
let num = 0;
let inter, delta;
let count = $('.con').length;
for (let i = 0; i < count; i++) {
$('aside').append('<a></a>');
}
$('aside a').eq(num).addClass('active'); // 내비게이터 첫번째 active 태그
function playAni() { // 페이지 이동과 active 클래스 함수 선언
$('main').css({
transform: `translateY(-${100 * num}vh)`
});
$('aside a').removeClass('active');
$('aside a').eq(num).addClass('active'); // 내비게이터 순서에 num 넣기
}
$(window).on('mousewheel', function (e) {
delta = e.originalEvent.wheelDelta;
clearTimeout(inter);
inter = setTimeout(function () {
if (delta < 0) {
if (num != count - 1) num++;
} else {
if (num != 0) num--;
}
playAni(); // 함수 실행
}, 100);
});
내비게이터를 클릭하면 페이지 이동하기
$('aside a').on('click', function(){
num = $(this).index(); // 클릭한 a 태그의 인덱스를 받아와 num에 넣기
playAni();
})
파이어폭스를 위해 속성 추가
$(window).on('mousewheel DOMMouseScroll', function (e) { // DOMMouseScroll 추가
delta = e.originalEvent.wheelDelta;
clearTimeout(inter);
inter = setTimeout(function () {
if (delta < 0) {
if (num != count - 1) num++;
} else {
if (num != 0) num--;
}
playAni();
}, 100);
});
파이어폭스는 스크롤했을 때 값이 달라서 코드 추가
if(e.type=='mousewheel'){
delta = e.originalEvent.wheelDelta; // 크롬 : 휠을 내리면 값이 +
}else {
delta = -e.originalEvent.detail; // 파이어폭스 : 휠을 내리면 detail값이 -, 앞에 -추가
}
delta = e.originalEvent.wheelDelta || -e.originalEvent.detail; // 이렇게도 가능
이벤트의 전파 차단
event.preventDeFualt();
728x90
'유료강의 > 국비지원' 카테고리의 다른 글
웹퍼블리셔 활용 4일차 - 스크롤 예제 3, 제이쿼리UI (0) | 2021.10.14 |
---|---|
웹퍼블리셔 활용 3일차 - 스크롤 예제 2 (0) | 2021.10.13 |
웹퍼블리셔 활용 1일차 - 스크롤 예제 1 (0) | 2021.10.07 |
웹퍼블리셔 기본 10일차 - 문자열 함수 (0) | 2021.10.06 |
웹퍼블리셔 기본 9일차 - 브라우저 메소드 (0) | 2021.10.05 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- js
- 비주얼스튜디오코드
- 회고
- 저스트코드
- 파이썬
- html
- 스파르타코딩클럽
- CSS
- map
- React
- Python
- 깃
- 제이쿼리
- 타입스크립트
- Typescript
- 구름에듀
- 자바스크립트
- scss
- 리액트
- 코드잇
- 드림코딩
- 제로초
- 김버그
- 코딩앙마
- vue
- vscode
- javascript
- Til
- TS
- git
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함