0

我正在修改此脚本以使覆盖在单击时完全淡出。问题是如果 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/

4

3 回答 3

0

fadeOut(500);意味着隐藏元素,这就是隐藏元素的原因。

尝试做

if(dir)
    $ei_image.hide().fadeIn(500); 
else
    $ei_image.fadeOut(500);
于 2013-07-27T02:11:20.677 回答
0

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

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

此外,在您的小提琴中,在左侧的下拉列表中包含 jQuery 并点击运行。

我叉了你的小提琴

那是你想要的吗?

于 2013-07-29T17:46:57.710 回答
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,将其从 0.5 不透明度变为 0,然后变为 display:hidden。104 处的部分重置封闭的 div,如果 div 被隐藏,它不能只动画不透明度,所以你必须做一个 fadeTo 来取消隐藏 div,然后动画到 0.5 不透明度以匹配其他封闭的 div。

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

于 2013-07-31T00:46:50.550 回答