привет ... снова нужен совет :)
Я работаю над проектом с фильтруемым портфолио [на основе этой ссылки на плагин: www.gethifi.com/blog/a-jquery-plugin-to -создайте-интерактивное-фильтруемое-портфолио, подобное нашему .
элементы портфолио показаны в горизонтальном ползунке, который добавляет области прокрутки (горячие точки) с левой и правой стороны окна браузера.
вот и моя проблема:
ширина ползунка вычисляется в плагине smoothdivscroller www.smoothdivscroll.com . но когда я изменяю содержимое ползунка с помощью навигации по фильтрам, общая ширина ползунка изменяется, но плагин smoothdivscroller этого не замечает.
Я установил для вас упрощенный пример в jsfiddle, и вы можете увидеть всю проблему здесь kuemmel-schnur.de/projekte : когда отображаются все проекты (Alle) и вы прокручиваете вправо и затем переключаетесь на категорию «Lehrprojekte». Вы не увидите никаких проектов, потому что они находятся в крайней левой части, и общая ширина контейнера не пересчитывается.
Чтобы исправить это, у меня есть три идеи, в которых мне нужна серьезная помощь.
1) плагин smoothdivscroll предлагает общедоступный метод для пересчета ширины контейнера, например
$("#makeMeScrollable").smoothDivScroll("recalculateScrollableArea");
, который мне нужно запускать каждый раз после нажатия списка портфолио
. и мне нужно объединить это с методом, при котором ползунок автоматически переключается на первый элемент текущего контента
$("#makeMeScrollable").smoothDivScroll("moveToElement", "first");
2) Моя вторая идея - потому что я не знаю, работает ли и как 1) - это проверить, работает ли url изменяется, а затем запускает пересчет. фильтр использует хеш для адресации содержимого. поэтому я подумал, что могу прочитать URL-адрес, и каждый раз, когда часть сразу после изменения хэша, я мог запустить метод.
3) Я мог бы связать фильтруемый плагин с плагином smoothDivScroll с помощью чего-то вроде (остерегайтесь совершенно неправильного кода :)
$('#portfolio-list').filterable();
$('#portfolio-filter a').click(function(){
$('#makeMeScrollable').smoothDivScroll("moveToElement", "first")("recalculateScrollableArea");
});
итак .. что вы думаете? снова ссылка jsfiddle: jsfiddle.net / tobiasmay / QudtF /
спасибо, tobi.
пс. Я бы правильно настроил ссылки, но мне нужно еще 1 очко репутации, чтобы опубликовать более 1 ссылки;)