-
자바스크립트 제이쿼리 슬라이더 - 마우스 휠 스크롤 기능 (JavaScript & jQuery Slider - mouse wheel scroll)
2023. 1. 28.
자바스크립트 (JavaScript) 자바스크립트 제이쿼리 슬라이더 - 마우스 휠 스크롤 기능 (JavaScript & jQuery Slider - mouse wheel scroll) 코드펜 예제입니다.
화면을 스크롤 하면 슬라이더 콘텐츠가 나오는데 콘텐츠 안에 마우스를 갖다 대고 마우스 휠 스크롤을 하면 하나씩 넘어가게 됩니다. 다 넘어가면 페이지 전체 스크롤이 다시 넘어가는 형태입니다. :)
/* 전역변수 */// 페이지들var Page__$pages;// 페이지 개수var Page__pagesCount;/* 초기화 함수들 */// 페이지 관련 요소들을 초기화 한다.function Page__init() {Page__initVars();Page__initElAttrs();Page__initSideBarMenu1Item();Page__initMouseWheel();Page__initKeyUp();}// 필수적인 전역변수들을 초기화 한다.function Page__initVars() {Page__$pages = $('.pages-box > div');Page__pagesCount = Page__$pages.length;}// 필수적인 엘리먼트 속성들을 초기화한다.function Page__initElAttrs() {Page__setCurrentIndex(0);}// 사이바 메뉴1 아이템을 초기화한다.function Page__initSideBarMenu1Item() {$('.side-bar > .menu-1 > ul > li').click(function() {var index = $(this).index();Page__moveTo(index);});}function Page__initMouseWheel() {$('.box-1').bind("mousewheel DOMMouseScroll", function(e) {var isUp = true;if ( e.originalEvent.wheelDelta < 0 ) {isUp = false;}if ( isUp ) {if ( Page__isCurrentPageFirst() == false ) {Page__movePrev();e.preventDefault();}}else {if ( Page__isCurrentPageLast() == false ) {Page__moveNext();e.preventDefault();}}});}function Page__initKeyUp() {$(window).keyup(function(e) {if ( e.keyCode == 37 || e.keyCode == 38 ) {Page__movePrev();}else if ( e.keyCode == 39 || e.keyCode == 40 ) {Page__moveNext();}});}/* 게터, 세터 */function Page__isCurrentPageFirst() {return Page__getCurrentIndex() == 0;}function Page__isCurrentPageLast() {return Page__getCurrentIndex() + 1 == Page__pagesCount;}function Page__getCurrentIndex() {var index = $('body').attr('data-current-page-index');index = parseInt(index);return index;}function Page__setCurrentIndex(index) {$('body').attr('data-current-page-index', index);}function Page__getPositionLeft() {var pageIndex = Page__getCurrentIndex();return pageIndex * -100 + '%';}/* 갱신함수 */function Page__updateSideBarMenu1Item() {var pageIndex = Page__getCurrentIndex();$('.side-bar > .menu-1 > ul > li.active').removeClass('active');$('.side-bar > .menu-1 > ul > li').eq(pageIndex).addClass('active');}function Page__updatePositionLeft() {var newPositionLeft = Page__getPositionLeft();$('.pages-box').stop().animate({left:newPositionLeft}, 500);}/* 사용자 이벤트 함수 */function Page__moveNext() {var index = Page__getCurrentIndex();Page__moveTo(index + 1);}function Page__movePrev() {var index = Page__getCurrentIndex();Page__moveTo(index - 1);}/* 코어로직 */function Page__moveTo(pageIndex) {if ( pageIndex < 0 ) {pageIndex = 0;}else if ( pageIndex >= Page__pagesCount ) {pageIndex = Page__pagesCount - 1;}Page__setCurrentIndex(pageIndex);Page__updateSideBarMenu1Item();Page__updatePositionLeft();}/* 초기화 실행 */Page__init();kimyang-Sun노력하는 사람
'코딩 기록 > 코딩 소스 [HTML & CSS & JS]' 카테고리의 다른 글
자바스크립트 제이쿼리 아코디언 메뉴 기능 예제 (JavaScript & jQuery Accordion menu) (0) 2023.01.28 자바스크립트 제이쿼리 탭 메뉴 기능 (JavaScript & jQuery Tab menu) (0) 2023.01.28 자바스크립트 제이쿼리 세로 슬라이더 예제 (JavaScript & jQuery Vertical Slider) (0) 2023.01.28 Swiper 슬라이드 자동재생 무한 롤링 (Swiper slider autoplay infinite rolling) (0) 2023.01.28 Swiper 슬라이드 반응형 - 리사이즈시 화면 크기에 따라 적용 & 해제(swiper slider responsive resize) (0) 2023.01.28