当我点击.nv菜单链接时,它会显示div,但如果我再次点击,我希望它动画隐藏,如果我点击.short-menu div之外,我希望它再次隐藏。有人可以帮我吗?
这是下面的代码
<script>
$(window).ready(function(e) {
$(".nv-menu").click(function(e) {
e.preventDefault();
$(".short-menu").animate({"left":"100px"}, "slow").show();
});
});
</script>
答案 0 :(得分:2)
更正后的代码如下:试试这个
<script>
$(window).ready(function(e) {
var a =0;
$(".nv-menu").click(function(e) {
e.preventDefault();
if (a==0)
{
$(".short-menu").animate({"left":"100px"}, "slow").show();
a=1;
}
else
{
$(".short-menu").animate({"left":"10px"}, "slow");
// left: 10px to be back to the position
a=0;
}
});
});
</script>
答案 1 :(得分:0)
您可以使用“状态变量”。
例如:
<script>
$(window).ready(function(e) {
var state = 1;
$(".nv-menu").click(function(e) {
e.preventDefault();
if(state == 1)
{
$(".short-menu").animate({"left":"100px"}, "slow").show();
state = 2;
}
else if(state == 2)
{
//do reverse animation here
}
});
});
</script>
答案 2 :(得分:0)
$(window).ready(function(e) {
$(".nv-menu").click(function(e) {
e.preventDefault();
$(".short-menu").animate({"left":"100px"}, "slow").toggle(); //replaced toggle here
});
});
答案 3 :(得分:0)
这样的事情可能值得研究
<script>
$(window).ready(function(e) {
var action = 100;
$(".nv-menu").click(function(e) {
e.preventDefault();
$(".short-menu").animate({"left":action+"px"}, "slow");
action = (action == 100) ? -100 : 100;
});
});
</script>
这只是动画进出..你可以将-100
更改为原始状态......
示例:
答案 4 :(得分:0)
下面:
$(window).ready(function() {
// for clicks on menu:
$(".nv-menu").click(function(e) {
e.preventDefault();
$(".short-menu").animate({"left":"100px"}, "slow").toggle();
});
// for clicks else where:
$("body").click(function(e) {
var target = $(e.target);
if (!target.is(".nv-menu"))
$(".short-menu").animate({"left":"100px"}, "slow").hide();
});
});