在这里,我想尝试制作像facebook一样的按钮。这是我的代码:
<!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" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>like button</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<style>
#like {
height: 215px;
background: url(images/sprite.png) no-repeat;
background-position: 0px 0px;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
$("#like").click(function(){
$("#like").css("background-position","0px -225px");
});
});
</script>
</head>
<body>
<div id="like">
</div>
</body>
</html>
现在,当用户点击图片时,图片会发生变化。我想改变那张图片,反之亦然。我怎么能够?有没有其他完美的方法来实现这个?
答案 0 :(得分:1)
定义2个CSS类(一个用于活动状态,第二个用于其他状态)并具有相关的CSS(从精灵图像加载图像)。使用按钮/类似图像点击事件。像这样的东西
<强> CSS 强>
.stateA,.stateB
{
background-image:url('http://www.wing-co.jp/img/ui/site_skin/default/sprite_facebook.png');
width:20px; height:20px;
}
.stateA
{
background-position:-511px -212px;
}
.stateB
{
background-position:-498px -212px;
}
<强> HTML 强>
<input type="button" id="btnLike" class="stateA" value="" />
<强>的Javascript 强>
$(function(){
$("#btnLike").click(function(e){
e.preventDefault();
var item=$(this);
if(item.attr("class")=="stateA")
{
item.removeClass("stateA").addClass("stateB");
//If you want to update database,you can make an ajax call here
}
else
{
item.removeClass("stateB").addClass("stateA");
//If you want to update database,you can make an ajax call here
}
});
});