直接新建一个html页面,需要在head中引入jquery,js,一些css代码以及js代码,如下:
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<style type=text/css >
.wrap{width:90px; height:90px; margin:120px auto 30px auto; position:relative}
.dice{width:90px; height:90px; background:url(dice.png) no-repeat;}
.dice_1{background-position:-5px -4px}
.dice_2{background-position:-5px -107px}
.dice_3{background-position:-5px -212px}
.dice_4{background-position:-5px -317px}
.dice_5{background-position:-5px -427px}
.dice_6{background-position:-5px -535px}
.dice_t{background-position:-5px -651px}
.dice_s{background-position:-5px -763px}
.dice_e{background-position:-5px -876px}
p#result{text-align:center; font-size:16px}
p#result span{font-weight:bold; color:#f30; margin:6px}
#dice_mask{width:90px; height:90px; background:#fff; opacity:0; position:absolute;
top:0; left:0; z-index:999}
</style>
<script>
$(function(){
var dice = $("#dice");
dice.click(function(){
dice.attr("class","dice");//清除上次动画后的点数
dice.css("cursor","default");
$(".wrap").append("<div id='dice_mask'></div>");//加遮罩
var num = Math.floor(Math.random()*6+1);//产生随机数1-6
dice.animate({left: '+2px'}, 100,function(){
dice.addClass("dice_t");
}).delay(200).animate({top:'-2px'},100,function(){
dice.removeClass("dice_t").addClass("dice_s");
}).delay(200).animate({opacity: 'show'},600,function(){
dice.removeClass("dice_s").addClass("dice_e");
}).delay(100).animate({left:'-2px',top:'2px'},100,function(){
dice.removeClass("dice_e").addClass("dice_"+num);
$("#result").html("您掷得点数是<span>"+num+"</span>");
dice.css('cursor','pointer');
$("#dice_mask").remove();//移除遮罩
});
});
});
</script>
其中要注意的jquery引入的路径,我是放在和该页面的相同路径下的。
页面body的代码如下:
<body>
<div id="dice" class="dice dice_1"></div>
<p id="result">请直接点击上面的色子!</p>
</body>
需要额外的引入所有状态骰子的图片,注意图片名称
主要实现的基本原理就是在初始图片上添加点击事件,当点击发生的时候随机取数,然后根据数值去找dice.png这张图片对应骰子的位置