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 相关文章推荐
Jquery getJSON方法详细分析
Dec 26 Javascript
jquery实现表格隔行换色效果
Nov 19 Javascript
详解前后端分离之VueJS前端
May 24 Javascript
vue2.0 自定义 饼状图 (Echarts)组件的方法
Mar 02 Javascript
Vuex入门到上手教程
Jun 20 Javascript
vue-router+nginx 非根路径配置方法
Jun 30 Javascript
详解Vue实战指南之依赖注入(provide/inject)
Nov 13 Javascript
Bootstrap 实现表格样式、表单布局的实例代码
Dec 09 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
Jun 18 jQuery
Vue分页插件的前后端配置与使用
Oct 09 Javascript
js获取url页面id,也就是最后的数字文件名
Sep 25 Javascript
Vue 组件注册全解析
Dec 17 Vue.js
在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加速器eAccelerator的配置参数、API详解
2014/05/05 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
用倒置滤镜把div倒置,再把table倒置。
2007/07/31 Javascript
js 延迟加载 改变JS的位置加快网页加载速度
2012/12/11 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
js运动事件函数详解
2016/10/21 Javascript
js无提示关闭浏览器窗口的两种方法分析
2016/11/06 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
node.js到底要不要加分号浅析
2018/07/11 Javascript
vuex + axios 做登录验证 并且保存登录状态的实例
2018/09/16 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
Python调用微信公众平台接口操作示例
2017/07/08 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
Win10下python3.5和python2.7环境变量配置教程
2018/09/18 Python
Python 中的lambda函数介绍
2018/10/10 Python
在python中计算ssim的方法(与Matlab结果一致)
2019/12/19 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
2020/02/26 Python
Python 如何反方向迭代一个序列
2020/07/28 Python
Python编写memcached启动脚本代码实例
2020/08/14 Python
python实现一个简单RPC框架的示例
2020/10/28 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
常用的HTML5列表标签
2017/06/20 HTML / CSS
华润集团网上药店:健一网
2016/09/19 全球购物
介绍下Java的输入输出流
2014/01/22 面试题
个人公开承诺书
2014/03/28 职场文书
大学生学习新党章思想汇报
2014/10/25 职场文书
2014年秘书工作总结
2014/11/25 职场文书
销售经理工作检讨书
2015/02/19 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
小学生组织委员竞选稿
2015/11/21 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
CSS3 制作的彩虹按钮样式
2021/04/11 HTML / CSS
浅谈MySQL函数
2021/10/05 MySQL