zeptozepto tap "투명"해결 방법

1581 단어

비침:


비침은 주로 두 개의div가 겹치기 때문이다. 예를 들어 하나의div는 show(), 하나의div는hide()를 호출한다.이때 위의div를 눌렀을 때 아래의div에 영향을 미친다.
두 가지 주요 해결 방법은 다음과 같습니다.
1.github에fastclick라는 라이브러리가 있는데 모바일 장치에서 클릭 이벤트의 지연 응답을 피할 수 있습니다.https://github.com/ftlabs/fastclick이것을script 라벨로 페이지에 도입 (이 라이브러리는 AMD를 지원하기 때문에 AMD 규범에 따라 Require.js 같은 모듈 마운트기로 도입할 수 있습니다) 하고domready에서 바디에 초기화할 수 있습니다. 예를 들어:
$(function(){
    new FastClick(document.body);
})

그리고 '지연 클릭 없음' 이 필요한 요소에 클릭 이벤트를 귀속시키면 됩니다. (더 이상 zepto가 귀속되지 않는tap 이벤트가 아닙니다.)물론 바디에서 초기화하지 않고 어떤dom에서 초기화할 수도 있습니다. 이dom와 하위 요소만 '지연 없음' 을 누릴 수 있습니다. zepto에 대해 계속 사용하려면 tap 관련 이벤트가 소용없습니다.'touch'모듈이 없는 zepto를 사용해서 zepto 파일의 크기를 줄이고 운영 효율을 높일 수 있습니다.zepto의github 페이지에는 맞춤형 모듈의 방법이 있습니다.https://github.com/madrobby/zepto의 building 섹션입니다.
2. 분석에 의하면 다른 라이브러리에 도입하지 않으면 상기된fastclcik의 사고방식에 따라 한 세트의 물건을 재개발하고 싶지 않다.아래의 "divClickUnder"보다 먼저 캡처된 이벤트 2.또한 이 이벤트를 통해 기본 행동을 막는다(아래의'divClickUnder'가 클릭 이벤트에 대한 포획을 막는다.ios의safari에서 클릭의 포획은 스크롤, 입력박스 클릭으로 키보드를 튕기는 것과 마찬가지로 브라우저의 기본 행위로 이벤트.preventDefault()에 의해 막을 수 있는 행위로 여겨진다.예를 들어tap사건을 터치end(뜻이 완전히 같지 않을 뿐만 아니라 우아하지 못하지만)로 바꾸면 바로'divTapAbove'에서 잡히는 것이지 바디에서 잡히는 것이 아니라'divTapAbove'에서 잡히는 것으로 만족한다.그리고 내부에서 preventDefault()를 사용하여 2를 해결했습니다. 코드는 다음과 같습니다.
$divTapAbove.on('touchend',function(e){ //        ,tap  body     , touchend      , dom          
    $divTapAbove.hide()
    $output.html($output.html() + 'tap<br/>')
    e.preventDefault(); //   “    ”
})

좋은 웹페이지 즐겨찾기