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

 更新时间:2015年06月05日 09:58:56   投稿:hebedich  
经常我们玩微信都会用到查到附近的人,都是在app上实现手机摇一摇的功能。现在,我们将此技术搬移到手机web上,供大家学习,有需要的小伙伴可以参考下。

手机摇一摇可以应用到很多场景中,如摇一摇换抽奖,摇一摇搜歌等。本文我将给大家介绍如何使用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'); 

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

相关文章

  • jquery获取checkbox的值并post提交

    jquery获取checkbox的值并post提交

    这篇文章主要介绍了jquery获取checkbox的值并post提交,需要的朋友可以参考下
    2015-01-01
  • 使用jQuery实现动态添加小广告

    使用jQuery实现动态添加小广告

    下面小编就为大家带来一篇使用jQuery实现动态添加小广告。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • jquery中push()的用法(数组添加元素)

    jquery中push()的用法(数组添加元素)

    这篇文章主要介绍了jquery的push使用方法,可向数组的末尾添加一个或多个元素,并返回新的长度,需要的朋友可以参考下
    2014-11-11
  • jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)

    jQuery不间断滚动效果(模拟百度新闻支持文字/图片/垂直滚动)

    jQuery模拟百度新闻不间断滚动效果并且支持文字、图片水平垂直滚动等等,感兴趣的朋友可以了解下,或许本文所提供的案例对你学习jquery特效有所帮助,好了话不多说,切入正题
    2013-02-02
  • Jquery promise实现一张一张加载图片

    Jquery promise实现一张一张加载图片

    通过jquery promise实现一张一张的连续图片的加载功能,当图片加载错误,超时后会显示加载图片加载失败。对jquery promise实现加载图片的相关资料感兴趣的朋友参考下
    2015-11-11
  • JQuery 图片的展开和伸缩实例讲解

    JQuery 图片的展开和伸缩实例讲解

    本文详细介绍下使用JQuery实现图片的展开和伸缩,感兴趣的朋友可以参考下哈,希望可以帮助到你
    2013-04-04
  • jQuery EasyUi实战教程之布局篇

    jQuery EasyUi实战教程之布局篇

    jQuery EasyUI Layout是一种基于jQuery的布局框架,今天初次使用Jquery EasyUi,简单的做了个布局页面感觉还不错,特此分享脚本之家平台供大家学习
    2016-01-01
  • jQuery命名空间与闭包用法示例

    jQuery命名空间与闭包用法示例

    这篇文章主要介绍了jQuery命名空间与闭包用法,结合实例形式演示了jQuery中命名空间及闭包的具体使用技巧,需要的朋友可以参考下
    2017-01-01
  • jQuery的deferred对象详解

    jQuery的deferred对象详解

    开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异步的操作(比如ajax读取服务器数据),也有同步的操作(比如遍历一个大型数组),它们都不是立即能得到结果的。
    2014-11-11
  • jquery分页插件jquery.pagination.js使用方法解析

    jquery分页插件jquery.pagination.js使用方法解析

    这篇文章主要针对js分页插件jquery.pagination.js使用方法进行解析,很实用的分页插件,感兴趣的小伙伴们可以参考一下
    2016-04-04

最新评论