gpt4 book ai didi

javascript - JQuery .animate() 菜单滑回

转载 作者:行者123 更新时间:2023-11-28 19:19:10 25 4
gpt4 key购买 nike

我有一段代码,当用户单击图片时运行。基本上,菜单应该使用 .animate() 函数从屏幕外滑入。您应该再次单击同一按钮才能使其返回。但是,当我单击它时,菜单会出现,但会立即滑回。我知道这似乎是一个简单的问题,但我是新手。有什么帮助吗?

// JavaScript Document
$(document).ready(function(e) {
var menuopen = false;

$("#menupic").click(function(e) {
if (menuopen == false) {
$(".menu").animate({
left: "0px"
}, 200)
menuopen = true;
}
});

$("#menupic").click(function(e) {
if (menuopen == true) {
$(".menu").animate({
left: "-400px"
}, 200)
menuopen = false
}
});
});
@charset "utf-8";

/* CSS Document */

.header {
width: 1280px;
background-color: #C29832;
position: fixed;
left: 0px;
top: 0px;
height: 60px;
z-index: 1000;
}
#logo1 {
position: fixed;
left: 70px;
top: 0px;
}
#menupic {
cursor: pointer;
background-image: url('http://placehold.it/180x180/322F37/C29832.png&text=Menu');
background-size: contain;
height: 60px;
width: 60px;
z-index: 1001;
position: fixed;
left: 0px;
top: 0px;
}
#menupic:hover {
background-image: url('http://placehold.it/180x180/322F37/C29832.png&text=Menu2');
}
.menu {
font-family: CordiaUPC;
height: 800px;
width: 400px;
background-color: #000;
color: #FFF;
position: fixed;
top: 60px;
font-size: 36px;
opacity: 0.85;
left: -400px;
}
.menu div p {
padding: 0px 0px 0px 0px;
margin: 0px;
position: relative;
left: 50px;
}
.menu div {
position: relative;
top: 20px;
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="stylesheet.css" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="animation.js"></script>
<title></title>
</head>

<body>
<div class="menu">
<div>
<p>Home</p>
<hr />
</div>
<div>
<p>About</p>
<hr />
</div>
<div>
<p>Posts</p>
<hr />
</div>
<div>
<p>Other</p>
</div>
</div>
<div class="header">
<div id="menupic"></div>
<img src="http://placehold.it/180x180/322F37/C29832.png&text=Logo1" height="60" width="60" id="logo1" />
</div>
</body>
</html>

最佳答案

您绑定(bind)同一事件两次,因此它被触发两次,并且您的变量 menuope 在第一次调用中设置为 true,然后在第二次调用中验证为 true

更改此代码

$(document).ready(function(e) {
var menuopen = false;

$("#menupic").click(function(e) {
if (menuopen == false) {
$(".menu").animate({
left: "0px"
}, 200)
menuopen = true;
}
else if (menuopen == true) {
$(".menu").animate({
left: "-400px"
}, 200)
menuopen = false
}
});
});

关于javascript - JQuery .animate() 菜单滑回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29210886/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com