эй .. нужен совет еще раз:)
Я работаю над проектом с фильтруемым портфелем [на основе этой ссылки на плагин: www.gethifi.com / blog / a-jquery-плагин для создания-интерактивного-фильтруемого-портфолио- как-наш .
элементы портфеля отображаются в горизонтальном ползунке, который добавляет области прокрутки (горячие точки) в левой и правой части окна браузера.
вот и моя проблема:
ширина ползунка рассчитывается в плагине smoothdivscroller www.smoothdivscroll.com . но когда я изменяю содержимое ползунка с помощью навигации по фильтру, общая ширина ползунка изменяется, но плагин smoothdivscroller этого не замечает.
Я настроил упрощенный пример в jsfiddle для вас, и вы можете испытать всю проблему здесь kuemmel-schnur.de / projekte : когда все проекты показаны (все) и Вы прокручиваете вправо, а затем переключаетесь в категорию «Lehrprojekte», вы не увидите никаких проектов, потому что они находятся на крайней левой стороне и общая ширина контейнера не пересчитывается.
Чтобы это исправить, у меня есть три идеи, где мне нужна серьезная помощь.
1) плагин smoothdivscroll предлагает публичный метод для пересчета ширины контейнера, например
$("#makeMeScrollable").smoothDivScroll("recalculateScrollableArea");
, который мне нужно запускать каждый раз после нажатия portfolio-list a
. и мне нужно объединить это с методом, в котором ползунок автоматически переключается на первый элемент текущего содержимого
$("#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 /
спасибо,
тоби.
пс. я бы правильно настроил ссылки, но мне нужно еще 1 очко репутации, чтобы публиковать более 1 ссылки;)