마우스휠 이벤트 질문드립니다
본문
마우스휠 내릴때마다 한페이지씩 보여지는 웹페이지입니다.
height 는 1300px 정도로 잡아뒀는데 footer 부분으로는 마우스가 안내려가요ㅠㅠ..
메인만보여지는상태입니다. footer부분도 보여지려면 어떻게 해야할까요..??
세로값이 1300이하면 마우스휠이벤트가 작동안한다고 써야하나요 ㅠㅠ ?
window.onload = function () {
$("#main01, #main02, #main03, #main04, #main05, #main06, #footer").each(function () {
// 개별적으로 Wheel 이벤트 적용
$(this).on("mousewheel DOMMouseScroll", function (e) {
e.preventDefault();
var delta = 0;
if (!event) event = window.event;
if (event.wheelDelta) {
delta = event.wheelDelta / 120;
if (window.opera) delta = -delta;
} else if (event.detail) delta = -event.detail / 3;
var moveTop = null;
// 마우스휠을 위에서 아래로
if (delta < 0) {
if ($(this).next() != undefined) {
moveTop = $(this).next().offset().top;
}
// 마우스휠을 아래에서 위로
} else {
if ($(this).prev() != undefined) {
moveTop = $(this).prev().offset().top;
}
}
// 화면 이동 0.8초(800)
$("html,body").stop().animate({
scrollTop: moveTop + 'px'
}, {
duration: 800, complete: function () {
}
});
});
});
}
답변 1
음 비슷한 원페이지 작업할때 맞닥뜨린 문제였는데요.
마지막 페이지에 푸터를 얹는 방식으로 해결했었습니다.
간단히 #ft 부분을 jquery 를 이용해서 요소를 위치 이동시켰습니다.
가령,
<lastpage>
<ft></ft>
</lastpage>
와 같이 요소를 이동시키고 하단에 딱붙도록 absolute 포지셔닝을 이용했던 기억이 있네요.
찾아오보면 헤더와 푸터를 둘수 있는 원페이지 관련 소스도 있을거라 생각됩니다.