2015-01-05 2 views
0

단일 페이지 웹 사이트에서 jquery를 사용하여 사용자가 버튼을 클릭하면 다음 "페이지"를 화면 위로 밀어냅니다. 새 페이지가 오른쪽에서부터 슬라이드 될 때 현재 페이지가 왼쪽으로 미끄러지므로 빈 공간이 표시되지 않지만 현재는 다음 페이지가 슬라이드 될 때 현재 페이지 만 사라질 수 있습니다. . 내가 사용하는 코드는 여기에 있습니다 : http://jsfiddle.net/xoa029jz/5/현재 페이지가 슬라이드 될 때 이전 페이지를 밀어 넣습니다.

function slideToNext() { 
    var currentPage = $('.current-page'); 
    var nextPage = getNextPage(currentPage.attr('id')); 
    $(nextPage).css('display', 'block'); 
    $(currentPage).animate({left: '-100%'}); 
    $(currentPage).removeClass('current-page'); 
    $(nextPage).addClass('current-page'); 
    $(nextPage).animate({left: '0%'});  
} 
+0

CSS 전환 * 및 * jQuery 애니메이션 조합을 사용하고 있습니다. 그들이 경쟁하면서 선호하는 것은 무엇입니까? –

답변

3

귀하의 CSS 전환이 jQuery를 애니메이션으로 싸우고있다. 내가 좋아하는 것을들을 때까지 나는 CSS 전환을 해제했다.

다른 수정 프로그램은 요소의 초기 위치를 애니메이션으로 설정하고 current-page 클래스를 제거하기 전에 패널이 완전히 나가기를 기다리는 것입니다.

JSFiddle : 나는 또한 약간의 중복 항목 (체인 선택기 등) 청소 http://jsfiddle.net/TrueBlueAussie/xoa029jz/8/

function slideToNext() { 
    var currentPage = $('.current-page'); 
    var nextPage = getNextPage(currentPage.attr('id')); 
    currentPage.css('left', '0%').animate({ 
     left: '-100%' 
    }, function() { 
     currentPage.removeClass('current-page'); 
    }); 
    nextPage.css({'display': 'block', 'left': '100%'}).addClass('current-page').animate({ 
     left: '0%' 
    }); 

} 

.

처음에는 jQuery 애니메이션을 사용하는 것이 좋습니다. 처음에는 작동시키면서 (예 : velocity.js과 같은) 플러그인을 추가하여 애니메이션에서 CSS 전환을 사용하는 대신 두 가지를 혼합하는 것이 좋습니다.

+0

문제가별로 없지만 currentPage 변수는 이미 jQuery 객체이므로 나는 앞에 $를 쓸 필요가 없다고 생각한다. var currentPage = $ ('. current-page'); currentPage.removeClass ('current-page'); }); – bipen

+1

@ currentPage.css ('left', '0 %'). 애니메이트 ({왼쪽 : '-100 %'}, function() { currentPage.removeClass bipen : 이미 초기 코드를 정리하고 있었지만, 고마워. 또한 설정을 조금 더 잘 연결해야했습니다. –

+0

예! 이제 완벽 해 보입니다 ... +1 ..... :) – bipen

관련 문제