淡出后显示块或淡入淡出后显示块
Display block after fadeout or fadein after fadeto
当我单击图像时,我希望 div 淡入然后淡出。此 div 应始终占用相同的 space (display: block
)。
如果我再次单击,我希望这个 div 重新出现。
无法实现。如果我使用 fadeOut()
,则会添加内联样式 display:none
。如果我使用 fadeTo()
,div 会被隐藏而不占用它的 space。
我该怎么做?
代码:
function edit(oneid)
{
AvisEdit(oneid);
}
function AvisEdit(oneid)
{
var nom = $('#X'+oneid+' .Nom').text();
ShowAlerts("Ara pots editar el valor dels camps de '"+nom+"'", 2);
}
function ShowAlerts(sms, code)
{
switch(code)
{
case 0:
Actions(sms, "success");
break;
case 1:
Actions(sms, "error");
break;
case 2:
Actions(sms, "info");
break;
}
}
function Actions(sms, tipus)
{
$("#warningboxes").toggleClass(tipus); // Add class
$('#warningboxes').css('visibility','visible').hide(); // start hidden to fadein
$("#warningboxes").html(sms); // add message in div
$("#warningboxes").fadeIn(1500, function() // show up
{
setTimeout(function()
{
$('#warningboxes').fadeOut(1500, 0); // dissapears but removes space of div #warningboxes; with fadeto(), fadein won't work anymore
}, 1500)
setTimeout(function()
{
BackToStd(tipus); // remove the properties added so it still works
}, 3000);
}
);
}
function BackToStd(tipus)
{
$('#warningboxes').toggleClass(tipus);
$('#warningboxes').css(
{
display: "block",
opacity: "",
filter: "",
zoom: "",
visibility: ""
}
);
}
.warningboxes
{
border: 1px solid;
margin: 10px 0px;
padding:15px 10px 15px 50px;
background-repeat: no-repeat;
background-position: 10px center;
visibility:hidden;
display:block;
}
.info
{
color: #00529B;
background-color: #BDE5F8;
background-image: url('../res/PNGICONS/KnobInfo.png');
}
.success
{
color: #4F8A10;
background-color: #DFF2BF;
background-image: url('../res/PNGICONS/KnobValidGreen.png');
}
.warning
{
color: #9F6000;
background-color: #FEEFB3;
background-image: url('../res/PNGICONS/KnobAttention.png');
}
.error
{
color: #D8000C;
background-color: #FFBABA;
background-image: url('../res/PNGICONS/KnobCancel.png');
}
<body>
<div class="warningboxes" id ="warningboxes" name="warningboxes"> Info message</div>
<table id="myid">
....
....
...
<img src='./res/edit.png' id='imagenok4' class='deleteAndOthers' OnClick='edit(4)'>
<img src='./res/edit.png' id='imagenok5' class='deleteAndOthers' OnClick='edit(5)'>
<img src='./res/edit.png' id='imagenok6' class='deleteAndOthers' OnClick='edit(6)'>
....
把所有的代码都加进去会太乱而且无关紧要。重要的部分在
function Actions(sms, tipus)
这里是我淡入淡出的地方...
我已经阅读了很多关于此的内容,但无法使我的代码正常工作。
谢谢!
我正在 phone,因此无法提供代码示例,但请尝试通过 adding/removing a class.[= 使用 CSS 设置不透明度动画。 10=]
请尝试此代码。第一次单击 img
时,div
会淡出。再次单击时,它会淡入。
更新:现在如果你想让div开始淡出,你只需要手动添加class gone
在开始时。因为那是导致 div
为零的 class opacity
。
$("#fade-img").on("click", function(e){
$("#fade-div").toggleClass("gone");
});//img click
#fade-div
{
background: green;
height: 200px;
transition: opacity 1s ease;
width: 200px;
}
#fade-div.gone
{
opacity: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<img id="fade-img" src="http://placehold.it/100X100" alt="" />
<div id="fade-div" class="gone"></div>
当我单击图像时,我希望 div 淡入然后淡出。此 div 应始终占用相同的 space (display: block
)。
如果我再次单击,我希望这个 div 重新出现。
无法实现。如果我使用 fadeOut()
,则会添加内联样式 display:none
。如果我使用 fadeTo()
,div 会被隐藏而不占用它的 space。
我该怎么做?
代码:
function edit(oneid)
{
AvisEdit(oneid);
}
function AvisEdit(oneid)
{
var nom = $('#X'+oneid+' .Nom').text();
ShowAlerts("Ara pots editar el valor dels camps de '"+nom+"'", 2);
}
function ShowAlerts(sms, code)
{
switch(code)
{
case 0:
Actions(sms, "success");
break;
case 1:
Actions(sms, "error");
break;
case 2:
Actions(sms, "info");
break;
}
}
function Actions(sms, tipus)
{
$("#warningboxes").toggleClass(tipus); // Add class
$('#warningboxes').css('visibility','visible').hide(); // start hidden to fadein
$("#warningboxes").html(sms); // add message in div
$("#warningboxes").fadeIn(1500, function() // show up
{
setTimeout(function()
{
$('#warningboxes').fadeOut(1500, 0); // dissapears but removes space of div #warningboxes; with fadeto(), fadein won't work anymore
}, 1500)
setTimeout(function()
{
BackToStd(tipus); // remove the properties added so it still works
}, 3000);
}
);
}
function BackToStd(tipus)
{
$('#warningboxes').toggleClass(tipus);
$('#warningboxes').css(
{
display: "block",
opacity: "",
filter: "",
zoom: "",
visibility: ""
}
);
}
.warningboxes
{
border: 1px solid;
margin: 10px 0px;
padding:15px 10px 15px 50px;
background-repeat: no-repeat;
background-position: 10px center;
visibility:hidden;
display:block;
}
.info
{
color: #00529B;
background-color: #BDE5F8;
background-image: url('../res/PNGICONS/KnobInfo.png');
}
.success
{
color: #4F8A10;
background-color: #DFF2BF;
background-image: url('../res/PNGICONS/KnobValidGreen.png');
}
.warning
{
color: #9F6000;
background-color: #FEEFB3;
background-image: url('../res/PNGICONS/KnobAttention.png');
}
.error
{
color: #D8000C;
background-color: #FFBABA;
background-image: url('../res/PNGICONS/KnobCancel.png');
}
<body>
<div class="warningboxes" id ="warningboxes" name="warningboxes"> Info message</div>
<table id="myid">
....
....
...
<img src='./res/edit.png' id='imagenok4' class='deleteAndOthers' OnClick='edit(4)'>
<img src='./res/edit.png' id='imagenok5' class='deleteAndOthers' OnClick='edit(5)'>
<img src='./res/edit.png' id='imagenok6' class='deleteAndOthers' OnClick='edit(6)'>
....
把所有的代码都加进去会太乱而且无关紧要。重要的部分在
function Actions(sms, tipus)
这里是我淡入淡出的地方...
我已经阅读了很多关于此的内容,但无法使我的代码正常工作。
谢谢!
我正在 phone,因此无法提供代码示例,但请尝试通过 adding/removing a class.[= 使用 CSS 设置不透明度动画。 10=]
请尝试此代码。第一次单击 img
时,div
会淡出。再次单击时,它会淡入。
更新:现在如果你想让div开始淡出,你只需要手动添加class gone
在开始时。因为那是导致 div
为零的 class opacity
。
$("#fade-img").on("click", function(e){
$("#fade-div").toggleClass("gone");
});//img click
#fade-div
{
background: green;
height: 200px;
transition: opacity 1s ease;
width: 200px;
}
#fade-div.gone
{
opacity: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<img id="fade-img" src="http://placehold.it/100X100" alt="" />
<div id="fade-div" class="gone"></div>