2016-08-16 8 views
1

position:absolute 헤더가 있습니다. (그래디언트 & transform3d는 멋진 애니메이션을 만들기 위해 - 헤더를 부드럽게 내려 ~ 80px로 만듭니다.) 그리고 ~ 150px 스크롤, 나는 그의 위치를 ​​fixed으로 바꾼다 - 애니메이션하기.Safari - 스크롤 애니메이션이 끝날 때까지 고정 된 navbar가 표시됩니다.

Safari 모바일에서는 애니메이션이 끝나면 Navbar의 50 %만이 페이지 상단에 달라 붙습니다. 다른 50 %는 스크롤 애니메이션을 완전히 멈추었을 때만 나타납니다 & 화면에서 내 손가락을 뗍니다. 하드웨어 가속을 사용하려면 transform: translate3d(0,0,0);-webkit-transform: translateZ(0px);을 적용했지만 그 결과는 그대로 유지됩니다. .navbar는 기본적으로 똑같은 2 개의 div가있는 .row입니다. soo는 문제가 어린이 요소가 아니라고 가정합니다. 내 iPad에서만 발생합니다. 여기

는 일부 코드입니다 :

CSS

.nav_bar { 
    position: absolute; 
    top: 52px; 
    left: 0; 
    right: 0; 

    transform: translate3d(0,0,0); 
    transition: transform .3s ease; 

    z-index: 2; 

    .&.is-fixed { 
     position: fixed; 
     top: -80px; 

     transform: translate3d(0,100%,0); 
     box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.2); 

     &:before { 
      position: absolute; 
      top: 0; 
      right: 0; 
      bottom: 0; 
      left: 0; 

      background-color:$bright-turquoise; 
      background: linear-gradient(to right, $cobalt 50%, $bright-turquoise 100%); 

      content: ''; 
    } 
} 

JS (커피 스크립트)

(window).scroll -> 
    scroll = $(window).scrollTop() 
    windowWidth = $(window).width() 

    if windowWidth >= 1024 
    if scroll >= $('.area_1').height()and 
    scroll < $('.footer').offset().top - 150 
     $navbar.addClass 'is-fixed' 
    else if scroll < $('.area_1').height() || scroll > $('.footer').offset().top - 150 
     setTimeout (-> 
     $navBar.removeClass 'is-fixed' 
     return 
    ), navAnimationTimer 
    return 

누구나 같은 문제가 있었다 또는 해결책을 알아?

+0

관련 코드 없음. 우리는 당신을 도와 드릴 수 없습니다 –

+0

@MihaiT가 코드를 추가했습니다. – bmfteixeira

답변

1

헤더에 will-change 속성을 지정하려 했습니까? 어쩌면 사파리가 변경 사항을 (더 잘) 감시합니다. 여러 페이지 및 다른 (모바일) 브라우저에서이 동작을 발견했습니다. 내 일반적인 해결 방법은 항상 시작 부분에 머리글을 고정시켜 브라우저가 모든 항목을 다시 렌더링 할 필요가 없도록하는 것입니다.

+0

시도했지만 여전히 작동하지 않습니다. 문제는 동일하게 유지됩니다. 50 % 만 렌더링하는 것처럼 ... 스크롤을 멈 추면 100 % 렌더링 한 후 다시 절대 위치와 고정 위치로 이동할 수 있으며 100 % 렌더링됩니다. 문제는 처음입니다. – bmfteixeira

+0

처음부터 오른쪽으로 고정 시켰다고해도? –

+0

아니요, 처음에는 헤더가 '고정'이면 모든 것이 잘됩니다. 문제는 '절대'에서 '고정 된'이 거래에 관한 것입니다. '절대'일 때 모든 것이 정상이고 그 다음 '고정'으로 변경되고 스크롤하는 동안 (오케이, 완벽, 그는 나타납니다) 50 % (네비게이션 막대의 왼쪽 절반) 만 렌더링합니다 ... 언제 스크롤을 멈추고 손가락을 뗍니다. 오른쪽면의 50 %를 렌더링합니다. – bmfteixeira