jquery:单击新项时重置css

时间:2013-07-27 02:09:32

标签: javascript jquery jquery-animate fade

我正在修改this script,以便在点击时完全淡出淡出。问题是如果将css更改为display:none我无法将其更改为display:block

这是有问题的(原创)

if(dir)
$ei_image.animate({opacity:0}, 1000);
else
$ei_image.css({opacity:0.5});

我正在尝试(以各种方式)但不起作用

if(dir)
    $ei_image.fadeOut(500); 
else
    $ei_image.fadein(500);

任何想法如何在点击新图层时返回div图层?

编辑** 我试图为此制作一个有效的jsfiddle,但即使所有的代码都存在,它也无法正常工作。我无法弄清楚为什么。但至少整个shebang都适合任何需要将这一点放在上下文中的人。

我也尝试了这个,当完美淡出时起作用,但在导航到新列时不会重新打开图层

if(dir)
    $ei_image.animate({opacity:0}, 1000 , function () {
        $(this).css({display:'none'}); 
    })
else
    $ei_image.css({display:'block'} , function () {
        $(this).animate({opacity:0.5}); 
    })

http://jsfiddle.net/BZzRT/

3 个答案:

答案 0 :(得分:0)

fadeOut(500);表示隐藏隐藏元素的元素。

尝试做

if(dir)
    $ei_image.hide().fadeIn(500); 
else
    $ei_image.fadeOut(500);

答案 1 :(得分:0)

尝试将原始.animate调用中的0更改为1.

if(dir)
$ei_image.animate({opacity:1}, 1000) ;
else
$ei_image.css({opacity:0.5});

另外,在你的小提琴中包括左下角的jQuery和点击运行。

我分叉your fiddle

这就是你想要的吗?

答案 2 :(得分:0)

http://jsfiddle.net/fastasleep/srLVs/

js中的第104行:

$menuItemsPreview.stop()
.animate({opacity:0.5}, 1500);

更改为:

.fadeTo(500,.5);

第119行:

if(dir)
$ei_image.hide().fadeIn(500); 

更改为:

$ei_image.fadeOut(1000);

在第119行,叠加div执行一个fadeOut,它将.5不透明度从0变为0,然后显示:隐藏。 104处的部分重置了关闭的div,如果div被隐藏,则不能动画只是不透明度,所以你必须做一个取消隐藏div的fadeTo,然后动画到.5不透明度以匹配其他关闭的div。

还将您的文字更改为#fff,以便您可以在黑色bg上看到它。 :)