• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 JavaScript, TS 게시판 캐러셀 슬라이드 모바일 터치 오류

캐러셀 슬라이드 모바일 터치 오류

  • 이 주제에는 1개 답변, 2명 참여가 있으며 codingapple1 년 전에 전에 마지막으로 업데이트했습니다.
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #124203

    손석호
    참가자
    안녕하세요. 선생님
    
    var swipestart = 0;
            var click = false;
            var cnt = $('.slide-box');
            cnt.each((i,v)=>{
              $('.slide-box').eq(i).on('touchstart', function(e) {
                    
                    swipestart = e.touches[i].clientX;
                    click = true;
                })
                $('.slide-box').eq(i).on('touchmove', function(e) {
                    if (click == true) {
                        console.log(e.touches[i].clientX - swipestart);
                        $('.slide-container').css('transform', `translateX(calc(${e.touches[i].clientX - swipestart}px - ${i}00vw))`)
                    }
                    
                })
                $('.slide-box').eq(i).on('touchend', function(e) {
                    click = false;
                    if (i == 0) {
                        
                        if((e.changedTouches[i].clientX - swipestart) < -200){
                          $('.slide-container').css('transition', 'all 0.5s')
                          $('.slide-container').css('transform', `translateX(0vw)`)
                        }else{
                          $('.slide-container').css('transition', 'all 0.5s')
                          $('.slide-container').css('transform', `translateX(-${i+1}00vw)`)
                          
                        }
                    } 
                      
                    if((e.changedTouches[i].clientX - swipestart) < -200){
                      $('.slide-container').css('transition', 'all 0.5s')
                      $('.slide-container').css('transform', `translateX(-${i+1}00vw)`)
                    } else if((e.changedTouches[i].clientX - swipestart) > 200){
                      
                      $('.slide-container').css('trasnsition', 'all 0.5s')
                      $('.slide-container').css('transform', `translateX(-${i-1}00vw)`)
                    } else {
                      $('.slide-container').css('transition', 'all 0.5s')
                      $('.slide-container').css('transform', `translateX(-${i}00vw)`)
                    }
                })
            })
    
    
    이런식으로 코드 짯는데
    말씀해주신 것처럼 touchend 에서는 e.clientX 을 e.changedTouches[i].clientX 로 바꿨는데
    
    Uncaught TypeError: Cannot read properties of undefined (reading 'clientX') 에러가 뜨는데
    이건 도저히 감이 안잡히는게 뭐가 문제일까요?
    
    
    • 이 게시글은 손석호에 의해 1 년 전에 수정됐습니다.
    #124210

    codingapple
    키 마스터
    .clientX 왼쪽에 있는게 비어있나봅니다 출력부터 해봅시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠