вот что я пытаюсь сделать:
У меня есть несколько div с ценами в них, и слайдер с фиксированным минимумом, где я могу установить максимальную цену. Благодаря этому я могу фильтровать div, поэтому будут отображаться только div с ценами в диапазоне ползунка.
Без анимации не было бы проблем, просто скрыть () и показать (), но я пытаюсь сделать это гладко.
vehicles[0] = { id: 1, price: 100 };
vehicles[1] = { id: 2, price: 250 };
vehicles[2] = { id: 3, price: 700 };
vehicles[3] = { id: 4, price: 300 };
...
slide: function(event, ui) {
for (i = 0; i < vehicles.length; i++) {
if (vehicles[i].price > ui.value && $('#vehicle'+vehicles[i].id).data('visible') == true) {
$('#vehicle'+vehicles[i].id).data('visible',false).stop(true).hide('blind',500);
}
if (vehicles[i].price <= ui.value && $('#vehicle'+vehicles[i].id).data('visible') == false) {
$('#vehicle'+vehicles[i].id).data('visible',true).stop(true).show('blind',500);
}
}
}
...
<div id="vehicle1">100€</div>
<div id="vehicle1">250€</div>
<div id="vehicle1">700€</div>
<div id="vehicle1">300€</div>
Это мой код, и вот моя проблема: при перемещении ползунка в одну сторону или точку он работает нормально, но, к примеру, если установить значение 0 € и сразу же вернуться к 700 € (пока анимация hide () все еще работает), все элементы div скрыты (но их данные ('visible') установлены в true). Вы можете увидеть мой беговой код здесь: http://work4.bywulf.de/index.php?page=Vehicles Просто двигайте ползунок быстро влево и назад вправо.
Похоже, что метод stop () неправильно останавливает текущую анимацию "скрытия", а анимация "показа" не воспроизводится.
Теперь, что я делаю не так или есть другой способ скрыть анимированные элементы, но остановить их на полпути и показать их снова полностью?
Надеюсь, вы знаете, что я имею в виду и что я пытаюсь сделать, спасибо за вашу помощь.
(jQuery 1.5, jQueryUI 1.8.9)
- Wulf