jquery - 我将如何使用 if/else 为多个元素设置动画

标签 jquery html css

也许我处理这个问题有误,如果是这样,请不要犹豫告诉我。

我的问题与将多个 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 做某事,而对所有其他的 div 做某事,你可以称它们为 sibling ,前提是它们是同一元素的子元素。例如:

$("#portChoose > div").hover(function(){
    $(this).animate({

        //Animate the hovered element

    }, 100).siblings("div").animate({

        //Animate the others

    }, 100);
});

JSFiddle

正如您在 JSFiddle 中看到的,我还添加了一个 mouseOut 调用来缩小悬停的 div 以及对 .stop() 的调用。在每个动画调用之前终止任何正在运行的动画。

关于jquery - 我将如何使用 if/else 为多个元素设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23147033/

相关文章:

javascript 附加值 jquery

javascript - JQuery append 和 Javascript appendChild 在附加元素中带有 document.write

jquery - 单击选项卡时平滑地上下滑动内容

html - 为什么最小高度不起作用?

css - 选择元素后面的文本节点

javascript - 检查页面是否有 jQuery、jQuery.ui 和 jQuery.ui.css 的最佳方法是什么

html - 第一项选择的CSS孙子

html - 用于显示标签/值数据的 html 标记是什么?

jquery - Bootstrap 验证错误消息 CSS

html - 如何在 flex 元素(单元格)中居中图像