如果父div由jquery动画,是否可以阻止某些子元素动画?

时间:2012-02-20 18:10:57

标签: javascript jquery

我想知道是否有可能让儿童元素不被动画化。如下例所示:(http://jsfiddle.net/JsfMF/6/

<head>
    <meta charset="utf-8" />
    <title>test</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
     function fade(){
     $('#fadethis').animate({opacity: 0}, 500).show('#nogoaway');
     };
</script>
</head>

<body>

    <div id ="fadethis">
        <p> I should go away </p>
        <p id="nogoaway">hi im not supposed to be animated</p>
    </div>
    <button id="fade" onClick="fade()">fade!</button>
</body>
</html>

非常感谢!

3 个答案:

答案 0 :(得分:1)

您不能这样做,因为不透明度应用于元素和所有子元素。但是,您可以通过将<p id="nogoaway"></p>移到<div id="fadethis"></div>之外并将其绝对放在<div id="fadethis"></div>上来实现您想要的行为。

HTML:

<div class="container">
    <div id ="fadethis">
        <p> I should go away </p>
    </div>
    <p id="nogoaway">hi im not supposed to be animated</p>
</div>

侧面注意:

弹出模态对话框时,

jQuery UI 使用相同的方法

答案 1 :(得分:1)

这不是直接可能的,因为孩子不是“独立的”。但是,您只能为要制作动画的孩子制作动画:http://jsfiddle.net/JsfMF/9/

function fade(){
    $('#fadethis').children(":not(#nogoaway)")
                  .animate({opacity: 0}, 500);
};​

答案 2 :(得分:1)

可能不是:HTML是围绕一个方框树构建的;如果你为父母设置动画,孩子们就会被拖走。

但是,您可以通过让父母同时包含您的父级和子级来模拟。定位和使用z轴将使您获得所需的效果。