2014-12-18 1 views
0

이 작동 - JSFiddlefullcalendar with qtip2 - 어떻게하면 qtip 스크롤을 올바르게 할 수 있습니까?

$("#FullCalendar").fullCalendar({ 
    timezone: false, 
    defaultView: "agendaWeek", 
    eventLimit: true, 
    events: [{ 
     title: 'event1', 
     start: moment().startOf('day').add(8,'hours') 
    }], 
    eventAfterRender: function(event, element) { 
     var $viewport = $(".fc-time-grid-container.fc-scroller"); 
     var qapi = $(element).qtip({ 
      content: "woo", 
      hide: { 
       event: false 
      } 
     }).qtip('api'); 
     $viewport.on("scroll", function() { 
      qapi.reposition(); 
     }); 
     qapi.show(); 
     event.qapi = qapi; 
    }, 
    eventDestroy: function(event, element, view) { 
     event.qapi.destroy(); 
    }, 
    header: { 
     left: 'prev,next today', 
     center: 'title', 
     right: 'month,agendaWeek,agendaDay' 
    } 
}); 
  • 일정보기 달력은 하루 종일 표시 등 qApi.reposition를 호출 할 fullcalendar 이벤트에
  • 스크롤 이벤트 리스너를 스크롤 DIV
  • qTip을 필요로 할 수 있도록 qtip은 이벤트에서 계속 지적됩니다. 솔루션이 알아서해야 스크롤 사업부로 position.container을 설정하는 말을 여러 장소를 scrolling problem

    내가 찾은 :

문제는 당신이 아래로 충분히 스크롤 할 때 숨겨되지 않는 것입니다 문제 (그리고 어쩌면 스크롤 이벤트 리스너에 대한 필요성). 하지만 position.container은 나를 위해 일을 망가 뜨리는 것 같습니다. 이 작품의

없음 : (JSFiddle)

position: { 
    //container: element.parent() 
    //container: element 
    container: $viewport 
} 

는 또한 position.viewportposition.target를 사용하여 시도하지했습니다.

+0

을 찾을 수 있습니다 짜증나는 해당 GIF인가? 수정 사항 하나를 취소하면 삭제됩니다. – slicedtoad

답변

1

스크롤 한 후에 요소가 표시되는지 확인하고 그에 따라 qtip을 표시하거나 숨길 수 있습니다.

$viewport.on("scroll", function() { 
      if(isScrolledIntoView(element[0])) { 
       qapi.show(); 
       qapi.reposition(); 
      } 
      else { 
       qapi.hide(); 
      } 
     }); 

Check this Fiddle

편집 : 요소의 가시성을 확인하는 좋은 방법은 here

+0

흠,이 방법 중 하나라고 생각합니다. 당신이 대답에 링크되어 있어야합니다 : http://stackoverflow.com/questions/487073/check-if-element-is-visible-after-scrolling – slicedtoad

+0

물론 @slicedtoad 만약 당신의 질문에 연결되어있을거야 요소 가시성 검사. 'isScrolledIntoView()'함수에 대해 원하는 구현을 검색하면된다. –

+1

나는 cc by-sa에 따라 속성을 제공하기 위해 링크되어야 함을 의미합니다. http://creativecommons.org/licenses/by-sa/3.0/ – slicedtoad