2016-01-19 2 views
0

В моем приложении angularjs у меня есть примерно 23 вкладки. Так 90% ширины, которую я дал для вкладок с overflow : hidden, и 10% ширина Prev и Next иконки. Каждая вкладка имеет ширину 36px. Таким образом, по умолчанию на вкладках страницы 5 становятся видимыми. Теперь, когда я нажимаю Next, я просто хочу прокрутить 5 вкладок влево, как это продолжается до тех пор, пока не появится последняя вкладка. Таким образом, в моем Next значке события клика я пытаюсь сделать что-то вроде следующего, в моем контроллере, чтобы получить максимальную прокрутку влево, а затем использовать его, но в моем коде maxScrollLeft возвращает NaN.необходимо отрегулировать прокрутку влево, чтобы вкладки занимали угловое приложение

_self.getNextTabs = function() {    
      var maxScrollLeft = $element.scrollWidth - $element.clientWidth; 
      alert(maxScrollLeft); 
      angular.element(document.querySelector('.main_tabSet .nav-tabs')).scrollLeft(600);  
     } 

Здесь я жёстко .scrollLeft(600); для целей тестирования, поэтому, когда я нажимаю Next, вкладки прокручивают влево. Но я хочу, чтобы эта прокрутка работала правильно, основываясь на максимальной прокрутке влево и количестве занятых табов. может кто-нибудь помочь мне в ее исправлении.

ответ

1

Не уверен, что _self.getNextTabs находится в директиве, контроллере или в другом месте, но имя $ element указывает (мне), что оно может быть внутри директивы?

Если это так, то я думаю, что $ element может быть объектом jquery. И - если это так, то вам нужно будет использовать синтаксис $element[0].scrollWidth и другие ...

_self.getNextTabs = function() {    
    var maxScrollLeft = $element[0].scrollWidth - $element[0].clientWidth; 
    angular.element(document.querySelector('.main_tabSet .nav-tabs')).scrollLeft(600);  
} 
+0

Да, вы правы. Но теперь как scrollWidth, так и clientWidth идут как 1353, знаете ли вы, почему оба одинаковы? –

+0

Не знаю, как [этот ответ стека] (http://stackoverflow.com/a/21064102/4747123), кажется, указывает, что вы смотрите на правильные свойства ... Если не использовать css-переполнение: hidden означает scrollWidth = clientWidth. [Возможно, проблема FFox?] (Http://stackoverflow.com/a/15811768/4747123) – bri

+0

На самом деле это внутренний контроллер, поэтому я дал var maxScrollLeft = angular.element (document.querySelector ('. Main_tabSet .nav-tabs ')). scrollWidth; но maxScrollLeft подходит как неопределенный. –

 Смежные вопросы

  • Нет связанных вопросов^_^