메뉴 건너뛰기

2016.12.22 20:25

bxslider 멈춤현상

조회 수 10115 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
1번과 2번을 같이 처리 지금은 업데이트된 버전이 나온걸로 알고 있음

1. bxslider 는 슬라이드 애니메이션 동작할때 css translate3d 와 jquery animate를 사용한다.

ios webview 에서는 translate3d 를 지원하므로 css 로 애니메이션이 동작을 하는데, 애니메이션이 끝나면 transitionend 이벤트가 실행이 되고 slider.working = false; 가 되면서 애니메이션이 끝난다.

그런데 스크롤을 함과 동시에 이미지를 넘기면 transitionend 가 실행이 안되고 slider.working 은 계속 ture상태로 남게되면서 bxslider는 더이상 동작하지 않는다.

이 문제를 해결하기 위해서 transitionend 가 발생하지 않으면 slider.working = false; 를 실행시키기 위해 소스를 수정해보았다.

jquery.bxslider.js 를 열어서

var setPositionProperty = function(value, type, duration, params){

이 부분을 찾은다음

// set the property value
el.css(slider.animProp, propValue);

css 속성을 세팅하는 부분 아래에다가

// ios에서 스크롤하면서 작동하면 transitionend 이벤트가 안먹혀서 추가함 by starkey
var dummy = setTimeout(function(){
    slider.working = false;
}, duration+1);
// -->

를 추가하고,

정상적으로 transitionend 가 발생했을대 clearTimeout 을 해준다.

el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(){
   clearTimeout(dummy); // transitionend 가 동작하면 clearTimeout 해줌
   // unbind the callback
   el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd');
   updateAfterSlideTransition();
});

출처 :

http://starkey1984.blogspot.kr/2016/04/bxslider-ios-freezes.html

2. 주석처리 

var onTouchStart = function(e){
   if(slider.working){

    //e.preventDefault(); //주석하기

...

var onTouchMove = function(e){
   var orig = e.originalEvent;
   // if scrolling on y axis, do not prevent default
   var xMovement = Math.abs(orig.changedTouches[0].pageX - slider.touch.start.x);
   var yMovement = Math.abs(orig.changedTouches[0].pageY - slider.touch.start.y);
   // x axis swipe
   if((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX){

    //e.preventDefault(); //주석하기

List of Articles
번호 제목 날짜 조회 수
19 [jQuery] 이용 아이디 중복체크 실시간 2016.09.11 8876
18 파일 업로드 방법, 이미지 파일 업로드 예제 소스 2017.03.06 9028
17 select box 값 변경, 목록 변경 2016.09.21 9065
16 POST 방식으로 인수를 전달하고 그 결과를 받아오기 2016.09.21 9202
15 각종 다이어그램 플러그인 / 차트 / 관계 플러그인 2016.09.09 9489
14 jquery radio checked (라디오 버튼 값으로 선택), 검색 조건 초기 셋팅 2016.11.17 10046
13 jQuery 날짜 비교 (날짜비교) 2016.11.17 10066
» bxslider 멈춤현상 2016.12.22 10115
11 셀렉트박스에서 특정 옵션 선택시 레이어 나타내기 2016.12.22 10486
10 jquery 이용한 필수입력체크(input form) 2017.03.02 10559
9 Ajax를 이용한 데이터 조회시 로딩 로딩 이미지 보이기(jquery이용) file 2016.12.22 10746
8 속성선택자를 이용해서 링크에 스타일 입히기 2016.09.21 11553
7 jQuery 입문: form 데이터 유효성 검사 2017.03.02 11799
6 Ajax를 통해 전송된 데이터를 Controller에서 List 객체로 받기 2021.03.25 12242
5 jqGrid / custom pager / custom paging / 그리드 / 페이징 file 2016.09.09 12522
4 이미지 클릭시 확대하기 file 2016.09.21 12648
3 동적으로 콤보(select)의 항목(option) 생성하기 2016.09.21 14377
2 jquery 플러그인 링크 모음 2016.12.22 49614
1 jquery timer, javascript countdown (타이머 예제) 2018.11.07 81495
Board Pagination Prev 1 ... 4 5 6 7 8 9 Next
/ 9

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved