2010-01-14 67 views
2

我想通过调暗页面上的其他所有元素来突出显示页面上的某些元素。下面的Div及其所有的孩子元素,我想保持完全不透明,其余的,我想减少约50%。这个Div只是位于页面的主体中。从Jquery中某个特定元素中选择所有内容

<div id="basket"> 

    <div id="basket-contents"> 

     <div id="basket-messages"> 
     </div> 


     <div id="basket-items"> 
     </div> 

    </div> 

</div> 

我在我的JQuery中尝试过以下内容,但它仍然使整个页面变暗,包括此Div。

// On hover basket start... 
$("#basket").hover(
    function() { 
     $('$:not(#basket)').animate({opacity: 0.5}, 1); 
    }, 
    function() { 
     $('$:not(#basket)').animate({opacity: 0.5}, 1); 
    } 
); 

任何人都可以指出我在正确的方向?

在此先感谢。

回答

2

如果页面中所有其他元素的不透明度发生变化,并且如果div在任何其他元素内部,那么此div也将获得从父元素继承的不透明属性。

将页面高度和宽度放在另一个div上,然后将#basket div的堆栈索引设置为更高的值会更好。

+0

谢谢,这个效果最好。欢呼所有回答。 – Schodemeiss 2010-01-15 15:16:14

0

你有没有试过$作为你选择的部分:即,

$(':not(#basket)').animate({opacity: 0.5}, 1); 
1

我不知道你是否需要通配符*选择。此外,通过Jamiec作为暗示,从您的字符串删除$:

$('*:not(#basket)').animate({opacity: 0.5}, 1); 

此外,你看了一些插件代码(例如BlockUI),这是否是如何达到效果?

编辑:

这是否有什么影响:

alert($("*").length);    //returns '78' 
alert($("*[id!=FundTable]").length); //returns '77' 

所以我知道这个作品:

$('*[id!=basket]').animate({opacity: 0.5}, 1); 

我在下面的方式我自己的页面上测试了这个。你能确认你的网页吗?

+0

不幸的是,这样做时整个页面仍然淡出。篮子也是。 我也尝试过使用BlockUI插件,但无法达到所需的效果。对那个人有什么帮助? 干杯 – Schodemeiss 2010-01-14 11:27:52

+0

增加了一个新的例子 – 2010-01-14 11:58:24

相关问题