点击文字链接时,我希望有2个动画:
单击时不透明度有效,但在第二次单击时我无法返回到opacity = 1.
我尝试过:
.fadeTo,.fadeToggle,但我无法让它发挥作用......
所以当点击"#edition2014"," .menu_edition_2014"显示和"#menu"使用淡出动画淡化为0.5,再次点击"#edition2014"," .menu_edition_2014"隐藏和"#menu"渐弱到1,动画淡出。
这是我的Jquery:
$(document).ready(function() {
$('#edition2014').click(function() {
$('.menu_edition_2014').slideToggle("slow");
$( '#menu' ).fadeTo( "fast", 0.5);
});
});
这是一个jsfiddle:http://jsfiddle.net/APA2S/1500/
非常感谢你的帮助,
答案 0 :(得分:3)
问题是你正在切换幻灯片,但是只用一个事件就可以单步切换淡入淡出。
为什么不使用CSS解决方案,并切换一个类?额外的好处是风格和内容的分离,所以如果你想在以后更改效果,它很容易编辑你的CSS。
jQuery的:
$(document).ready(function() {
$('#edition2014').click(function() {
$('.menu_edition_2014').slideToggle("slow");
$( '#menu' ).toggleClass('fade');
});
});
CSS
#menu{
opacity:1;
transition:opacity 0.5s ease-in;
}
#menu.fade{
opacity:0.5;
}
答案 1 :(得分:1)
你可以做这样的事情
$( '#menu' ).fadeTo( "fast", $('#menu').css("opacity") == "1" ? "0.5" : "1");
答案 2 :(得分:0)
试试这个:
$('#edition2014').click(function() {
var el = $('#menu');
$('.menu_edition_2014').slideToggle("slow");
if (el.css('opacity') == 1) {
el.fadeTo("fast", .5);
} else {
el.fadeTo("fast", 1);
}
});
<强> JS Fiddle 强>
答案 3 :(得分:0)
如果您不想使用CSS类。
$(document).ready(function() {
$('#edition2014').click(function() {
$('.menu_edition_2014').slideToggle("slow");
if($('#menu').css('opacity') == 1){
$('#menu').animate({opacity:0.5}, 1000);
} else{
$('#menu').animate({opacity:1}, 1000);
}
});
});