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 相关文章推荐
innerText和textContent对比及使用介绍
Feb 27 Javascript
select、radio表单回显功能实现避免使用jquery载入赋值
Jun 08 Javascript
实例讲解JS中数组Array的操作方法
May 09 Javascript
Javascript MVC框架Backbone.js详解
Sep 18 Javascript
JavaScript插件化开发教程 (二)
Jan 27 Javascript
javascript中CheckBox全选终极方案
May 20 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
Dec 27 Javascript
jQuery实现上传图片前预览效果功能
Aug 03 jQuery
js禁止Backspace键使浏览器后退的实现方法
Sep 01 Javascript
react-native中ListView组件点击跳转的方法示例
Sep 30 Javascript
jquery animate动画持续运动的实例
Nov 29 jQuery
Node.JS发送http请求批量检查文件中的网页地址、服务是否有效可用
Nov 20 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
php性能优化分析工具XDebug 大型网站调试工具
2011/05/22 PHP
PHP Switch 语句之学习笔记
2013/09/21 PHP
php cookie名使用点号(句号)会被转换
2014/10/23 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
Yii框架ACF(accessController)简单权限控制操作示例
2019/04/26 PHP
javascript Prototype 对象扩展
2009/05/15 Javascript
javascript 当前日期加(天、周、月、年)
2009/08/09 Javascript
javascript代码编写需要注意的7个小细节小结
2011/09/21 Javascript
JQuery为textarea添加maxlength属性并且兼容IE
2013/04/25 Javascript
探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
2013/07/09 Javascript
jquery.messager.js插件导致页面抖动的解决方法
2013/07/14 Javascript
jQuery中end()方法用法实例
2015/01/08 Javascript
jquery中键盘事件小结
2016/02/24 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
轻松理解JavaScript闭包
2017/03/14 Javascript
Vue路由切换时的左滑和右滑效果示例
2018/05/29 Javascript
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
JavaScript实现简单随机点名器
2019/11/21 Javascript
浅谈Vue 自动化部署打包上线
2020/06/14 Javascript
[03:19]2016国际邀请赛中国区预选赛第四日TOP10镜头集锦
2016/07/01 DOTA
python traceback捕获并打印异常的方法
2018/08/31 Python
对Python3中dict.keys()转换成list类型的方法详解
2019/02/03 Python
基于virtualenv创建python虚拟环境过程图解
2020/03/30 Python
Python多线程threading创建及使用方法解析
2020/06/17 Python
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
2015/04/24 HTML / CSS
使用Html5 Stream开发实时监控系统
2020/06/02 HTML / CSS
BIFFI美国站:意大利BIFFI BOUTIQUES豪华多品牌时装零售公司
2020/02/11 全球购物
高级工程师英文求职信
2014/03/19 职场文书
雷人标语集锦
2014/06/19 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
购房协议书范本
2014/10/02 职场文书
2014年度工作总结报告
2014/12/15 职场文书
MySQL如何解决幻读问题
2021/08/07 MySQL