2014-01-09 5 views
0

이 코드는 URL의 대상으로 가기 전에 각 페이지를 페이드 아웃합니다. 그러나 사용자가 새 페이지로 이동하지 않고 브라우저에서 PDF로 이동하거나 기본 메일 응용 프로그램을 여는 경우가 있습니다. Safari에서는 외부 사이트 (www.twitter.com)로 가서 뒤로 버튼을 누르면 .wrapper이 여전히 희미 해집니다. (? 아마도 캐시 것)URL에 따른 페이지 전환

function fadeAndGo(x) { 

     $(x).click(function (e) { 
     e.preventDefault(); 
     var href = this.href; 
     $('.wrapper').fadeOut(function(){ 
      window.location = href; 

     }); 
     // $('.wrapper').delay()fadeIn(); 
    }); 
} 

fadeAndGo('a'); 

그것이 가능하려면 다음 중 하나를

  • 페이드 아웃 URL이 'PDF, 흔한'를 포함하지 않는, 또는 외부 링크가있는 경우에만?
  • 일정 시간 후 페이드 인합니다 (페이드 아웃되었지만 PDF/mailto 인 경우 몇 초 후에 다시 페이드 아웃 됨).

답변

0

이 시도 :

function fadeAndGo(x) { 
    $(x).click(function (e) { 
     e.preventDefault(); 
     var href = $(this).attr("href"); 
     if (!/PDF|mailto/gi.test(href)) { 
      $('.wrapper').fadeOut(function() { 
       window.location = href; 
      }).delay(2000).fadeIn(); 
     } else { 
      window.location = href; 
     } 
    }); 
} 

fadeAndGo('a'); 
+0

감사합니다! 2 초 후에 다시 페이드 인하는 논리적 인 방법이 있습니까? .delay (2000)를 켠 경우 전혀 종료되지 않습니다. –

+0

물론 할 수 있습니다. 수정 된 코드 –