2014-07-03 156 views
3

我有一個具有交互式滾動條的水平iScroll實例。iScroll:當隱藏指示器時隱藏滾動條

myScroll = new IScroll('#wrapper', { 
     scrollX: true, 
     scrollY: false, 
     mouseWheel: false, 
     scrollbars: 'custom', 
     interactiveScrollbars: true, 
     resizeScrollbars: false, 
     bindToWrapper: false, 
     click: true, 
     fadeScrollbars: true, 
    }); 

我想它的滾動條隱藏在iScroll使得隱藏(display: none) 我注意到,當它檢測到沒有必要的,因爲缺乏幻燈片/元素來滾動改變指標的CSS display性能指標滾動。

這通常發生在我從小到大視口調整瀏覽器大小時發生。

fadeScrollbars不正是我想要的,因爲它隱藏了滾動條和指標,即使它仍然可以滾動。

如何配置iScroll在隱藏指示器時不顯示滾動條?

有沒有解決這個問題的方法?

+0

我想要一個AngularJS的解決方案。感興趣嗎? – hgoebl

回答

0

這是很久以前的事時,加入這個問題,但我解決了通過添加一些額外的代碼庫 - 在v5.1.3我找到方法刷新,其中在一開始是一些「如果條件」:

if (this.options.listenX && !this.options.listenY) { 
     this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none'; 
    } else if (this.options.listenY && !this.options.listenX) { 
     this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none'; 
    } else { 
     this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none'; 
    } 

變化

if (this.options.listenX && !this.options.listenY) { 
     this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none'; 
     this.wrapper.style.display = this.scroller.hasHorizontalScroll ? 'block' : 'none'; 
    } else if (this.options.listenY && !this.options.listenX) { 
     this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none'; 
     this.wrapper.style.display = this.scroller.hasVerticalScroll ? 'block' : 'none'; 
    } else { 
     this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none'; 
     this.wrapper.style.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none'; 
    } 
0

有一個變通使用jQuery(只檢查,如果指標是隱藏的,隱藏滾動條):

if($('#wrapper .iScrollIndicator').is(':hidden')) { 
    $('#wrapper .iScrollVerticalScrollbar').hide(); 
}