jQuery+HTML5实现手机摇一摇换衣特效


Posted in Javascript onJune 05, 2015

手机摇一摇可以应用到很多场景中,如摇一摇换抽奖,摇一摇搜歌等。本文我将给大家介绍如何使用HTML5+PHP+jQuery实现手机摇一摇换衣效果。

注意,这是一篇WEB知识综合应用的文章,阅读本文前提是,您需要有HTML5,jQuery,PHP,MySQL等相关方面的基础知识。

HTML

我页面中默认展示产品信息(某品牌连衣裙产品图片和文字说明),当然实际应用中可以从数据库中获取产品信息。

<div id="pro" rel="1"> 
 <p>使劲晃动您的手机</p> 
 <img src="images/z1.jpg" width="300" height="300"> 
 <p>灰色</p> 
</div>

然后在页面中加载jQuery库文件,同时我们继续沿用上一篇文:《用HTML5实现手机摇一摇的功能的教程》中用到的侦听手机摇晃的代码:shake.js。

<script src="jquery.js"></script> 
<script src="shake.js"></script>

jQuery

我们使用shake.js检测到用户手机摇晃,当摇晃发生时调用函数shakeEventDidOccur(),向后台product.php发送Ajax请求,后台程序会根据提交的请求参数返回相应的JSON数据。我们根据返回的数据显示对应的产品图片和文字信息,实现了换衣的效果。

window.onload = function() { 
 var myShakeEvent = new Shake({ 
  threshold: 15 
 }); 
 
 myShakeEvent.start(); 
 
 window.addEventListener('shake', shakeEventDidOccur, false); 
 
 function shakeEventDidOccur () { 
  var pro_id = $("#pro").attr("rel"); 
  $.getJSON("product.php?id="+pro_id,function(json){ 
   if(json.msg==1){ 
    $("#pro").attr("rel",json.pro.id) 
    .html('<img src="images/'+json.pro.pic+'" width="300" height="300"><p>'+json.pro.color+'</p>'); 
   }else{ 
    alert(json.msg); 
   } 
  }); 
 } 
};

PHP

后台product.php根据接收ajax提交过来的参数id,查询数据库中除当前id以外的数据信息,获取到相应的数据集结果,然后随机从数据集中取出一组数据(因为每次只展示一条数据信息),以JSON格式返回给前端调用,请看代码:

<?php 
//连接数据库 
include_once("connect.php"); 
 
$id = intval($_GET['id']); 
if($id==0) exit; 
//查询数据 
$query = mysql_query("select * from dress where id!='$id'"); 
$total = mysql_num_rows($query); 
$arr = array(); 
if($total==0){ 
 $arr['msg'] = '没有足够的衣服!'; 
}else{ 
 $arr['msg'] = 1; 
 while($row=mysql_fetch_array($query)){ 
  $pros[] = array( 
   'id' => $row['id'], 
   'color' => $row['color'], 
   'pic' => $row['pic'] 
  ); 
 } 
 //随机取一组数据 
 $arr['pro'] = $pros[array_rand($pros)]; 
} 
//输出JSON格式数据 
echo json_encode($arr); 
?>

当然本文只是一个实例应用,开发中你可以根据实际应用优化PHP程序代码,打造符合你项目的优质PHP代码,最后奉上mysql数据表结构:

CREATE TABLE IF NOT EXISTS `dress` ( 
 `id` int(11) NOT NULL AUTO_INCREMENT, 
 `color` varchar(30) NOT NULL, 
 `pic` varchar(30) NOT NULL, 
 PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=5 ; 
 
INSERT INTO `dress` (`id`, `color`, `pic`) VALUES 
(1, '灰色', 'z1.jpg'), 
(2, '紫色', 'z2.jpg'), 
(3, '红色', 'z3.jpg'), 
(4, '蓝色', 'z4.jpg');

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
showModalDialog模态对话框的使用详解以及浏览器兼容
Jan 11 Javascript
javascript实现倒计时并弹窗提示特效
Jun 05 Javascript
自己动手写的jquery分页控件(非常简单实用)
Oct 28 Javascript
jQuery学习笔记之Ajax用法实例详解
Dec 01 Javascript
jQuery使用正则表达式限制文本框只能输入数字
Jun 18 Javascript
Highcharts学习之坐标轴
Aug 02 Javascript
jQuery控制元素隐藏和显示
Mar 03 Javascript
分享19个JavaScript 有用的简写写法
Jul 07 Javascript
vue-cli创建的项目,配置多页面的实现方法
Mar 15 Javascript
node前端模板引擎Jade之标签的基本写法
May 11 Javascript
微信小程序模板template简单用法示例
Dec 04 Javascript
详解angularjs4部署文件过大解决过程
Dec 05 Javascript
在JavaScript中使用NaN值的方法
Jun 05 #Javascript
jQuery实现表格行上下移动和置顶效果
Jun 05 #Javascript
jQuery实现弹出窗口中切换登录与注册表单
Jun 05 #Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 #Javascript
javascript实现删除前弹出确认框
Jun 04 #Javascript
jquery插件validation实现验证身份证号等
Jun 04 #Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
Jun 04 #Javascript
You might like
Joomla下利用configuration.php存储简单数据
2010/05/19 PHP
PHP性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
php array_merge函数使用需要注意的一个问题
2015/03/30 PHP
利用PHP将图片转换成base64编码的实现方法
2016/09/13 PHP
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
jQuery元素选择器用法实例
2014/12/23 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
在微信小程序里使用watch和computed的方法
2018/08/02 Javascript
vue 中滚动条始终定位在底部的方法
2018/09/03 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
微信小程序实现canvas分享朋友圈海报
2020/06/21 Javascript
解决vue一个页面中复用同一个echarts组件的问题
2020/07/19 Javascript
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
Python中的日期时间处理详解
2016/11/17 Python
python argparser的具体使用
2019/11/10 Python
Python安装与卸载流程详细步骤(图解)
2020/02/20 Python
利用Python自动化操作AutoCAD的实现
2020/04/01 Python
加拿大鞋子连锁店:Town Shoes
2016/09/26 全球购物
世界上最好的足球商店:Unisport
2019/03/02 全球购物
南京迈特望C/C++面试题
2012/07/09 面试题
财务管理专业自荐信范文
2013/12/24 职场文书
敬老文明号事迹材料
2014/01/16 职场文书
水利学院求职自荐书
2014/02/01 职场文书
2014年情人节活动方案
2014/02/16 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
普通党员群众路线教育实践活动心得体会
2014/11/04 职场文书
人力资源部岗位职责
2015/02/11 职场文书
前台岗位职责
2015/02/13 职场文书
总经理助理岗位职责范本
2015/03/31 职场文书
撤诉申请书法院范本
2015/05/18 职场文书
化工厂员工工作总结
2015/10/15 职场文书