搜索
系统检测到您的用户名不符合规范:

jQuery砸金蛋_砸金蛋特效php

浏览:6231 发布日期:2015年04月13日 分类:用法示例 关键字: 砸金蛋 网页特效 js特效 jQuery特效
本文将使用jQuery与PHP讲解如何实现一个WEB砸金蛋程序,首先我们需要准备素材,即金蛋图片、砸碎后的金蛋图片、砸碎后的碎花图片、以及锤子四张图片。


页面底部有演示、免费下载链接。若是想看更多js特效、网站源码、 js教程请访问 http://www.sucaihuo.com/js还有演示DEMO,最主要是可以免费下载。
1、
三个金蛋、一把锤子及中奖结果#result_tip代码如下:
<div class="egg">
<ul class="egg_list">
<p class="hammer" id="hammer">锤子</p>
<p class="result_tip" id="result_tip"><b id="result"></b></p>
<li><span>1</span><sup></sup></li>
<li><span>2</span><sup></sup></li>
<li><span>3</span><sup></sup></li>
</ul>
</div>
2、
1、当鼠标滑向金蛋时,锤子会仅靠金蛋右上方,通过position()来控制位置。
$(".egg_list li").hover(function() {
var position_left = $(this).position().left + $(this).width();
$("#hammer").show().css('left', position_left);
})
当挥动锤子砸向金蛋eggClick()前,我们先把金蛋中的数字编号隐藏起来。
$(".eggList li").click(function() {
$(this).children("span").hide();
eggClick($(this));
});
最后,我们向后台ajax.php发送一个ajax请求,后台php程序会处理奖项分配并把中奖结果返回。我们使用animate()来实现砸锤子的动画,通过改变锤子的top和left位子来实现简单的动画效果,锤子砸下去后,金蛋样式变为.curruent,同时金花四溅,最后展现中奖结果,我们看下砸蛋的eggClick方法:
function eggClick(obj) {
$.get("ajax.php",function(data) {
if (obj.hasClass("current")) {
alert("蛋都碎了一地,刷新重新来过吧!");
return false;
}
$(".hammer").css({
"top": obj.position().top - 55,
"left": obj.position().left + 185
});
$(".hammer").animate({
"top": obj.position().top - 25,
"left": obj.position().left + 125
},30, function() {
obj.addClass("current"); //蛋碎效果
obj.find("sup").show(); //金花四溅
$(".hammer").hide();
$('.result_tip').css({
display: 'block',
top: '100px',
left: obj.position().left + 45,
opacity: 0
}).animate({
top: '50px',
opacity: 1
},
300,
function() {
if (data.msg == 1) {
$("#result").html("恭喜您中得" + data.prize_title + "!");
} else {
$("#result").html("Sorry,您没能中奖!");
}
});
});
},
"json")
}
3、
最后我们看下ajax.php中奖项设置和计算中奖概率算法。
$prize_arr = array(
'0' => array('id' => 1, 'title' => 'iphone5s', 'v' => 5),
'1' => array('id' => 2, 'title' => '联系笔记本', 'v' => 10),
'2' => array('id' => 3, 'title' => '音箱设备', 'v' => 20),
'3' => array('id' => 4, 'title' => '30GU盘', 'v' => 30),
'4' => array('id' => 5, 'title' => '话费50元', 'v' => 10),
'5' => array('id' => 6, 'title' => 'iphone6s', 'v' => 15),
'6' => array('id' => 7, 'title' => '谢谢,继续加油哦!~', 'v' => 10),
);

foreach ($prize_arr as $key => $val) {
$arr[$val['id']] = $val['v'];
}

$prize_id = getRand($arr); //根据概率获取奖品id
$data['msg'] = ($prize_id == 7) ? 0 : 1; //如果为0则没中
$data['prize_title'] = $prize_arr[$prize_id - 1]['title']; //中奖奖品
echo json_encode($data);
exit; //以json数组返回给前端

function getRand($proArr) { //计算中奖概率
$rs = ''; //z中奖结果
$proSum = array_sum($proArr); //概率数组的总概率精度
//概率数组循环
foreach ($proArr as $key => $proCur) {
$randNum = mt_rand(1, $proSum);
if ($randNum <= $proCur) {
$rs = $key;
break;
} else {
$proSum -= $proCur;
}
}
unset($proArr);
return $rs;
}
通过ajax.php,我们可以看出共设置了7个奖项并设置了中奖概率,比如砸中"iphone5s"的几率占5%,砸不中的几率占10%,点击演示砸金蛋demo来试试你的运气吧。
查看该特效演示及免费下载,请访问http://www.sucaihuo.com/js/17.html
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
hjl416148489
积分:6272 等级:LV5
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /