我正在使用设置网站(div可能是更好的选择,但目前我正在使用框架)。它由menu.html&组成。 main.html中。 Main.html分别更改了menu.html中单击按钮的位置。
menu.html - 大约9个按钮 - 每个按钮有3个相关图像 - 默认(xxx.jpg) - 鼠标悬停(xxx_hover.jpg) - 点击(xxx_onclick.jpg)
AIM 1.鼠标悬停时图像更改并在mouseout上返回默认值 2.单击时图像更改,并保持单击,直到单击另一个(在同一帧内)
到目前为止我... 我不知道如何保持图像保持为xxx_onclick.jpg直到另一个点击。另外,使用下面的代码,我收到一个错误;当我鼠标悬停在单击的图像上时,它会尝试找到不存在的xxx_onclick_hover.jpg。我不确定我应该使用哪些功能。
<head>
<script type="text/javascript" src="jquery-1.11.1.min.js"></script>
</head>
<body>
<img class="menu_btn" src="button1S.jpg"><br>
<img class="menu_btn" src="button2S.jpg"><br>
<img class="menu_btn" src="button3S.jpg"><br>
<img class="menu_btn" src="button4S.jpg">
</body>
<script>
$(".menu_btn")
.mouseover(function() {//onmouseover
this.src = this.src.replace('.jpg', '_hover.jpg');//replace src link from .jpg to _hover.jpg
})
.mouseout(function() {//onmouseout
this.src = this.src.replace('_hover.jpg', '.jpg');//replace src link from _hover.jpg to .jpg
})
.click(function() {//onclick
$(".menu_btn").unbind('mouseover');//disable mouseover to prevent error (ie. button1S_onclick_hover.jpg), but this disable all images...
this.src = this.src.replace('_hover.jpg', '_onclick.jpg');//onclick reply _hover.jpg to _onclick.jpg
}
);
</script>
非常感谢你。
下面是一组用Joce建议测试的代码 *尚未100%实用。
<html>
<head>
<style type="text/css">
.menu-btn {
background: url('http://icdn.pro/images/en/s/m/smiley-smile-icone-8052-128.png') no-repeat center;
width: 128px;
height: 128px;
display: inline-block;
}
.menu-btn:hover {
background: url('http://www.baza-lesnik.ru/images/blobwars.png') no-repeat center;
}
.menu-btn.active {
background: url('http://cdn.flaticon.com/png/256/40230.png') no-repeat center;
}
</style>
</head>
<body>
<a href="#" class="menu-btn"></a>
<a href="#" class="menu-btn"></a>
<a href="#" class="menu-btn"></a>
<a href="#" class="menu-btn"></a>
<a href="#" class="menu-btn"></a>
</body>
<script type="text/javascript">
$(function() {
$(".menu-btn").on("click", function(e) {
e.preventDefault();
$(".menu-btn.active").removeClass("active");
$(this).addClass("active");
//Do more things
});
});
</script>
</html>
答案 0 :(得分:0)
我建议您使用a
代替img
并设置background-image
。
单击时,删除CSS类active
并将其添加到单击的按钮。
以下是代码:
<head>
<style type="text/css">
.menu-btn {
width: 16px;
height: 16px;
display: inline-block;
}
.menu-btn-1 {
background: url('xxx.jpg') no-repeat center;
}
.menu-btn-1:hover {
background: url('xxx_hover.jpg') no-repeat center;
}
.menu-btn-1.active {
background: url('xxx_onClick.jpg') no-repeat center;
}
.menu-btn-2 {
background: url('xxx.jpg') no-repeat center;
}
.menu-btn-2:hover {
background: url('xxx_hover.jpg') no-repeat center;
}
.menu-btn-2.active {
background: url('xxx_onClick.jpg') no-repeat center;
}
...
</style>
</head>
<body>
<a href="#" class="menu-btn menu-button-1"></a>
<a href="#" class="menu-btn menu-button-2"></a>
<a href="#" class="menu-btn menu-button-3"></a>
<a href="#" class="menu-btn menu-button-4"></a>
<a href="#" class="menu-btn menu-button-5"></a>
</body>
<script type="text/javascript">
$(function() {
$(".menu-btn").on("click", function(e) {
e.preventDefault();
$(".menu-btn.active").removeClass("active");
$(this).addClass("active");
//Do more things
});
});
</script>
<强> 编辑: 强>
由于每个按钮都有不同的图像,因此应添加一个类来处理background-image
。我编辑了上面的代码。
如果您更喜欢使用javascript,则可以收听mouseover
和click
事件并更改jQuery中的background-image
。