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 相关文章推荐
js玩一玩WSH吧
Feb 23 Javascript
ajax 文件上传应用简单实现
Mar 03 Javascript
jWiard 基于JQuery的强大的向导控件介绍
Oct 28 Javascript
解决JS浮点数运算出现Bug的方法
Mar 12 Javascript
jquery 文本上下无缝滚动,鼠标放上去就停止 小例子
Jun 05 Javascript
原生JavaScript生成GUID的实现示例
Sep 05 Javascript
深入浅出分析javaScript中this用法
May 09 Javascript
AngularJS基础教程之简单介绍
Sep 27 Javascript
angular2使用简单介绍
Mar 01 Javascript
基于javascript制作经典传统的拼图游戏
Mar 22 Javascript
jQuery中iframe的操作(点击按钮新增窗口)
Apr 20 Javascript
微信小程序JS加载esmap地图的实例详解
Sep 04 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中字符查找函数strpos、strrchr与strpbrk用法
2014/11/18 PHP
微信自定义菜单的处理开发示例
2015/04/16 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
php生成条形码的图片的实例详解
2017/09/13 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
使两个iframe的高度与内容自适应,且相等
2006/11/20 Javascript
使用JavaScript构建JSON格式字符串实现步骤
2013/03/22 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
javascript实现获取字符串hash值
2015/05/10 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
AngularJS 过滤器(自带和自建)详解
2016/09/19 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
解决Jstree 选中父节点时被禁用的子节点也会选中的问题
2017/12/27 Javascript
详解JavaScript 中 if / if...else...替换方式
2018/07/15 Javascript
详解vuex之store拆分即多模块状态管理(modules)篇
2018/11/13 Javascript
Vue状态模式实现窗口停靠功能(灵动、自由, 管理后台Admin界面)
2020/03/06 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
Python中的字符串类型基本知识学习教程
2016/02/04 Python
python对配置文件.ini进行增删改查操作的方法示例
2017/07/28 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
Python函数中的可变长参数详解
2019/09/12 Python
简单了解Django ORM常用字段类型及参数配置
2020/01/07 Python
numpy库reshape用法详解
2020/04/19 Python
Python如何读写二进制数组数据
2020/08/01 Python
基于MUI框架使用HTML5实现的二维码扫描功能
2018/03/01 HTML / CSS
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
职业生涯规划书前言
2014/04/15 职场文书
师德师风建设整改措施思想汇报
2014/10/11 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
委托收款证明
2015/06/23 职场文书
2016寒假社会实践心得体会范文
2015/10/09 职场文书
ConditionalOnProperty配置swagger不生效问题及解决
2022/06/14 Java/Android
华为HarmonyOS3.0强在哪? 看看鸿蒙3.0这7个小功能
2023/01/09 数码科技