У меня есть что-то вроде этого примера, сортировка работает хорошо. Насколько я вижу, isotope использует какой-то кеш, а затем, используя правила CSS, сортирует все в окончательном виде. Но на самом деле он не сортирует DOM, поэтому цикл фокусировки не работает должным образом. Есть ли что-то, что я могу сделать, чтобы исправить это поведение, кроме сортировки DOM самостоятельно?
Циклическая фокусировка и сортировка по изотопу
Ответы (2)
в конце концов, мое решение заключалось в вычислении tabindex каждого элемента с использованием его абсолютной позиции.
function sortFocus(sortClass) {
var button = $('div.isotope-button').first() ;
setTimeout(function() {
$('div.isotope-button.' + sortClass).each(function(index) {
var pos = $(this).position(), posx = (pos.left) / button.outerWidth(), posy = ((pos.top) / button.outerHeight()) + 1;
$(this).find('a').attr('tabindex', posy + '' + posx);
});
}, 1000);
}
некоторые мысли:
- Плагин isotope не имеет функции обратного вызова после анимации.
- расчет основан на размере кнопок, при условии, что все кнопки имеют одинаковый размер. Я не знаю, работает ли с разными размерами
- В моем случае каждая изотопная кнопка имеет внутреннюю ссылку.
person
osdamv
schedule
25.02.2013
Это было то, на что я тоже смотрел. Спасибо за публикацию вашего решения :)
- person agmcleod; 16.10.2013
Это также работает, filteredItems всегда возвращается в правильном порядке.
$myIsotope.on('arrangeComplete', function (e, filteredItems) {
var tabIndex = 1;
$(filteredItems).each(function (index, item) {
$(item.element).find('a.title').attr('tabindex', tabIndex);
tabIndex++;
});
});
person
Lomax
schedule
05.09.2017
offset()
. Я попробую для вас функцию, но я просто собираюсь спать, так что сегодня вечером может не получиться. - person Brian Vanderbusch   schedule 20.02.2013