Возможно, я приближаюсь к этому неправильно, и если это так, пожалуйста, не стесняйтесь говорить мне об этом.
Мой вопрос связан с наличием нескольких div в шаблоне 4x3, обернутых в элемент контейнера. Цель состоит в том, чтобы нависнуть над одним элементом, назначить ему класс и сделать его больше, в то время как все остальные div в контейнере становятся меньше и не имеют класса.
$("#portChoose > div").hover(function () {
$(this).addClass("onTarget");
if( $(this).hasClass("onTarget") ){
$(this).animate({"width": "40px","height": "40px"}, 100);
} else {
$("#portChoose > div").animate({"width": "30px","height": "30px"}, 100);
}
}, function(){
$(this).removeClass("onTarget");
});
Будет ли это правильным способом заниматься этим? Если нет, что было бы лучшим способом подойти к этому типу сценария?
Я связал то, что у меня было, хотя бы работал, но я не добился успеха. Любая помощь или даже понимание будут оценены по достоинству. Благодарю!
JSFiddle: http://jsfiddle.net/rlvassallo/wyjf5/
Если вы хотите сделать что-то только для одного div и что-то еще для всех остальных, вы можете назвать их братьями и сестрами, если они являются детьми одного и того же элемента. Например:
$("#portChoose > div").hover(function(){
$(this).animate({
//Animate the hovered element
}, 100).siblings("div").animate({
//Animate the others
}, 100);
});
Как вы можете видеть в JSFiddle, я также добавил вызов mouseOut, чтобы сжать зависавший div, а также вызов .stop()
перед каждым вызовом анимации для прекращения всех запущенных анимаций.