-
글쓴이글
-
2022년 4월 5일 20:03 #31205
현정참가자리액트에서 가로스크롤 마우스휠로 스크롤하는걸 구현하고 싶은데 어떻게 해야되나요
구글링해서 찾아본것들을 적용하면 자꾸 화면이 안보이거나 오류가 뜨는데 어떻게 할까요..ㅠㅠㅠ
제가 대충 긁어 모았던것들도 첨부해 보겠습니다,. 이걸 어찌 적용해야될지모르겟습니당
useEffect(() => {
document.addEventListener('scroll', (e) => {
console.log(e);
const horizontal = e.target.scrollingElement.scrollLeft;
const vertical = e.target.scrollingElement.scrollTop;e.target.scrollingElement.scrollLeft = vertical
console.log(horizontal, vertical)
});
}, [])
container.addEventListener('wheel', (ev) => {
ev.preventDefault(); // stop scrolling in another direction
// console.log(ev.deltaY);
container.scrollLeft += (ev.deltaY + ev.deltaX);
// console.log('Wheel Move: '+ container.scrollLeft);
});
// horizontal scrolling with arrow keys
document.addEventListener('keydown', function(event) {
if (event.code == 'ArrowRight') {
container.style.scrollBehavior = 'smooth';
container.scrollLeft += 500;
container.style.scrollBehavior = null;
}
if (event.code == 'ArrowLeft') {
container.style.scrollBehavior = 'smooth';
container.scrollLeft -= 500;
container.style.scrollBehavior = null;
}
});
// scroll progress
container.addEventListener('scroll', handleScroll);
function handleScroll() {
let winScroll = container.scrollLeft || container.documentElement.scrollLeft;
let width = container.scrollWidth - container.clientWidth;
let scrolled = (winScroll / width) * 100;
document.getElementById("progressBar").style.width = scrolled + "%";
}2022년 4월 6일 10:07 #31243
codingapple키 마스터https://codesandbox.io/s/jovial-payne-z4ct3?file=/src/useSideScroll.js
이걸 참고해봅시다
2022년 4월 6일 17:09 #31271
현정참가자질문을 올리고나서 그냥 jquery로 적용하는걸 찾아서 했는데 그렇게 해도 상관이 없나요?
$(window).on('mousewheel',function(e){
var wheelDelta = e.originalEvent.wheelDelta;
if(wheelDelta > 0){
console.log("up");
$(this).scrollLeft(-wheelDelta + $(this).scrollLeft());
}else{
console.log("down");
$(this).scrollLeft(-wheelDelta + $(this).scrollLeft());
}
});
2022년 4월 6일 21:13 #31282
codingapple키 마스터상관은 없지만 사이트 용량은 70kb 정도 더 차지하겠군요
mousewheel 이벤트는 요즘은 쓰지말라고 하긴 합니다
-
글쓴이글
- 답변은 로그인 후 가능합니다.