直接新建一个html页面,需要在head中引入jquery,js,一些css代码以及js代码,如下:
<script type="text/javascript" src="https://www.jb51.net/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></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></div> <p>请直接点击上面的色子!</p> </body>
需要额外的引入所有状态骰子的图片,注意图片名称
主要实现的基本原理就是在初始图片上添加点击事件,当点击发生的时候随机取数,然后根据数值去找dice.png这张图片对应骰子的位置