Я работаю над ползунком jQuery с активным классом .slider-active
, когда mouseEnter
фигура.Остановка и откат других объектов анимации jQuery, когда мышь добавлена новая
Таким образом, я хочу, чтобы оживить мой .slider-imgcontainer
и мой figcaption в прохладном EFFET:
Когда .slideractive
изменения, предыдущий объект должен уменьшить ширину .slider-imgcontainer
в 250px и после width
и padding
из figcaption
- 0. Когда я уменьшаю width
figcaption
, текст был слишком высоким, поэтому я просто использую .hide
и .show
, чтобы исправить это.
Затем слайдер начнет работать, но ... когда мышь перевернется на несколько фигур, все они анимированы. Я попытался исправить это, но я не могу найти никаких решений (с .clearQueue()
et .stop()
).
Результат: current slider
Основной код анимации:
$(document).ready(function(){
var GLOBAL = {
window:$(window),
slider:$('.slider-work'),
container:$('#container'),
figure:$("figure")
}
/********* SLIDER MAIN *************/
// INIT LARGEUR ---
GLOBAL.slider.width($(".slider-work img").size() * 250 + 900);
// save width of figcaption in attr to animate them after (no auto animate)
GLOBAL.slider.find("figcaption").each(function(i) {
var t = $(this);
if(!t.parent().hasClass("slider-active"))
t.hide();
t.attr("largeur", t.width());
});
// hover
GLOBAL.slider.children("figure").mouseenter(function() {
var oldActive = $(".slider-active");
var thiss = $(this);
oldActive.removeClass("slider-active");
thiss.addClass("slider-active");
oldActive.find("figcaption").animate({
width: 0,
padding: 0
}, 220, 'linear', function() {
oldActive.find(".slider-imgcontainer").animate({
width : 250
}, 400, 'linear', function() {
// Animation de l'ancien active fini , alors :
//$(".slider-imgcontainer").removeAttr("style");
thiss.removeAttr("style").children(".slider-imgcontainer").animate({
width : 400
}, 400, 'linear', function(){
var largeurFigcaption = thiss.find("figcaption").show().attr("largeur");
thiss.find("figcaption").animate({
width : largeurFigcaption,
padding : " 0 20px 20px 20px"
}, 220, 'linear', function(){
});
});
});
});
});
// END MouseEnter
//End ready
});
И мой код для отладки бегунок
GLOBAL.slider.children("figure").mouseout(function() {
var thiss = $(this);
//$("#title span").append(" toto");
var myChildrenBehave = GLOBAL.slider.filter(function() {
var filtered = $(this).children().is(":animated");
return filtered;
});
myChildrenBehave.clearQueue().stop();
});
Я принимаю все Idee :)
Молодцы, это работает! :) Я использую свой код с шагом опциями одушевленным: 'шаг: (! Mouse.isOver (thiss)) функции (теперь, FX) { \t \t \t \t \t \t \t \t \t \t если $ (это) .стоп(); \t \t \t \t \t \t \t \t \t} ' Спасибо, теперь я просто должен оптимизировать код быстрее скользить! –
Вы должны попробовать его, разрешив ему завершить анимацию, а не останавливаться посередине. Это часто может придать приятный каскадный эффект, исключающий прерывистый внешний вид остановки. – Tom