Javascript 函数和位置有问题:固定表
我试图得到一张桌子,当你把鼠标悬停在上面时,它会在页面顶部改变颜色。我在div上使用以下CSS:Javascript 函数和位置有问题:固定表,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我试图得到一张桌子,当你把鼠标悬停在上面时,它会在页面顶部改变颜色。我在div上使用以下CSS: #navbar { width: 100%; margin: 0; position: fixed; top: 0px; border-spacing: 0; } #navbar td { width: 20%; background: #3399ff; padding: 10px; text-align: center;
#navbar {
width: 100%;
margin: 0;
position: fixed;
top: 0px;
border-spacing: 0;
}
#navbar td {
width: 20%;
background: #3399ff;
padding: 10px;
text-align: center;
font-size: 24px;
font-family: "Verdana", sans-serif;
font-variant: small-caps;
}
#navbar td:hover {
cursor: pointer;
}
这是桌子本身:
<table id="navbar">
<tr>
<td data-href="/">
<div>
Home
</div>
</td>
<td data-href="/tribes">
<div>
Tribes
</div>
</td>
<td data-href="/minecraft">
<div>
Minecraft
</div>
</td>
<td data-href="/dynmap">
<div>
Dynmap
</div>
</td>
<td data-href="/links">
<div>
Links
</div>
</td>
</tr>
</table>
这样就可以了,表格被粘在页面的顶部。但是,表格单元格悬停在上方时不会改变颜色。我如何解决这个问题,使表格单元格在悬停时改变颜色
编辑:
以下是整个页面:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Home</title>
<script src="/jquery-1.9.1.min.js"></script>
<script src="/scripts.js"></script>
<link rel="stylesheet" type="text/css" href="/stylesheet.css">
<style>
#editcontainer {
width: 100%;
margin-left: auto;
margin-right: auto;
position: fixed;
bottom: 0px;
margin-bottom: 0;
}
#edit {
padding: 4px;
width: 100px;
background-color: #3399ff;
margin-bottom: 0;
text-align: center;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
margin-left: auto;
margin-right: auto;
}
#editformdiv {
margin-top: 0;
border: 2px solid #3399ff;
border-top-left-radius: 5px;
border-top-right-radius: 5px;
border-bottom: 0;
margin-left: auto;
margin-right: auto;
display: none;
width: 300px;
background-color: white;
}
#editform {
text-align: center;
}
#edit:hover {
cursor: pointer;
}
</style>
</head>
<body>
<table id="navbar">
<tr>
<td data-href="/">
Home
</td>
<td data-href="/tribes">
Tribes
</td>
<td data-href="/minecraft">
Minecraft
</td>
<td data-href="/downloads">
Downloads
</td>
<td data-href="/links">
Links
</td>
</tr>
</table>
<div class="spacer"></div>
<div class="spacer"></div>
<div id="editcontainer">
<div id="edit">EDIT</div>
<div id="editformdiv">
<table id="editform">
<form name="login" method="post" action="edit.php">
<tr>
<td><b>Login</b></td>
<td></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="password" type="password" id="password"></td>
</tr>
<tr>
<td><input type="submit" name="Submit" value="Login"></td>
<td></td>
</tr>
</form>
</table>
</div>
</div>
</body>
</html>
试试这个:
$("#navbar td").mouseenter(function () {
$(this).css('background-color', '#33ccff')
}).mouseleave(function () {
$(this).css('background-color', '#3399ff');
});
您只需使用css即可完成此操作:
#navbar td {
background-color: #3399ff;
}
#navbar td:hover {
cursor: pointer;
background-color: #33ccff;
}
试试这个:
$("#navbar td").mouseenter(function () {
$(this).css('background-color', '#33ccff')
}).mouseleave(function () {
$(this).css('background-color', '#3399ff');
});
您只需使用css即可完成此操作:
#navbar td {
background-color: #3399ff;
}
#navbar td:hover {
cursor: pointer;
background-color: #33ccff;
}
尝试使用背景色,而不仅仅是背景色
另外,我可以知道为什么你不把这个放在CSS中吗?这样会更好。尝试
背景色
而不是只背景色
另外,我可以知道为什么你不把这个放在CSS中吗?这会更好。在CSS中为:hover属性添加背景样式,而不是在jQuery中。在CSS中为:hover属性添加背景样式,而不是在jQuery中。也许您可以尝试类似的方法:
$('navbar td').hover(function() {
$(this).css('background-color','#33ccff')
}, function() {
$(this).css('background-color', '#3399ff')
});
或者,如上所述,您可以执行类似于以下内容的CSS:
#navbar td {
width: 20%;
background: #3399ff;
padding: 10px;
text-align: center;
font-size: 24px;
font-family: "Verdana", sans-serif;
font-variant: small-caps;
}
#navbar td:hover {
cursor: pointer;
background: #33ccff;
}
也许你可以尝试类似的方法:
$('navbar td').hover(function() {
$(this).css('background-color','#33ccff')
}, function() {
$(this).css('background-color', '#3399ff')
});
或者,如上所述,您可以执行类似于以下内容的CSS:
#navbar td {
width: 20%;
background: #3399ff;
padding: 10px;
text-align: center;
font-size: 24px;
font-family: "Verdana", sans-serif;
font-variant: small-caps;
}
#navbar td:hover {
cursor: pointer;
background: #33ccff;
}
您的代码工作正常,请检查停止jQuery代码工作的js错误 工作示例(与您发布的代码完全相同):
试验
#导航栏{
宽度:100%;
保证金:0;
位置:固定;
顶部:0px;
边界间距:0;
}
#导航条{
宽度:20%;
背景:#3399ff;
填充:10px;
文本对齐:居中;
字体大小:24px;
字体系列:“Verdana”,无衬线;
字体变体:小大写字母;
}
#导航栏td:悬停{
光标:指针;
}
$(文档).ready(函数(){
$(“#编辑”)。单击(函数(){
$('#editformdiv')。slideToggle();
$(“#密码”).focus();
});
$(“#导航栏td”)。单击(函数(){
location.href=this.getAttribute(“数据href”);
});
$(“#导航栏td”).mouseenter(函数(){
$(this.css('background','#33ccff'))
});
$('#navbar td').mouseleave(函数(){
$(this.css('background','#3399ff');
});
});
家
部落
我的世界
Dynmap
链接
您的代码工作正常,请检查导致jQuery代码无法工作的js错误
工作示例(与您发布的代码完全相同):
试验
#导航栏{
宽度:100%;
保证金:0;
位置:固定;
顶部:0px;
边界间距:0;
}
#导航条{
宽度:20%;
背景:#3399ff;
填充:10px;
文本对齐:居中;
字体大小:24px;
字体系列:“Verdana”,无衬线;
字体变体:小大写字母;
}
#导航栏td:悬停{
光标:指针;
}
$(文档).ready(函数(){
$(“#编辑”)。单击(函数(){
$('#editformdiv')。slideToggle();
$(“#密码”).focus();
});
$(“#导航栏td”)。单击(函数(){
location.href=this.getAttribute(“数据href”);
});
$(“#导航栏td”).mouseenter(函数(){
$(this.css('background','#33ccff'))
});
$('#navbar td').mouseleave(函数(){
$(this.css('background','#3399ff');
});
});
家
部落
我的世界
Dynmap
链接
嗯。。。桌子要你的菜单吗?嗯。。。桌子为了你的菜单?我尝试了这两个建议,但什么都没发生。我把position:fixed改为position:relative,效果很好,但我希望导航栏能贴在屏幕顶部。我刚刚测试了你的代码和我的2个建议,这三种方法都有效,所以你的问题不在这里。。。它在相对位置工作的事实令人不安。我可以要求您发布整个HTML(包括头部和身体)吗?我发布了整个代码,并在另一个浏览器中进行了尝试。InternetExplorer10似乎喜欢它,但不喜欢谷歌Chrome。编辑:Firefox也不喜欢它。奇怪的是,IE 10可以正常工作,而不是Chrome或Firefox。你有一个间隔者在导航栏上徘徊。添加z-index:1代码>在导航栏上,它会工作。我尝试了这两个建议,但都没有发生任何事情。我把position:fixed改为position:relative,效果很好,但我希望导航栏能贴在屏幕顶部。我刚刚测试了你的代码和我的2个建议,这三种方法都有效,所以你的问题不在这里。。。它在相对位置工作的事实令人不安。我可以吗