基于jQuery的360图片展示实现代码


Posted in Javascript onJune 14, 2012
$(function(){ 
var box_W = $(".PIC360").width(); 
var box_H = $(".PIC360").height(); 
var box_X = $(".PIC360").offset().left; 
var box_Y = $(".PIC360").offset().top; 
//求出中心点的横坐标值 
var center_X = Math.ceil(box_X+(box_W/2)); 
//求出中心点的纵坐标值 
var center_Y = Math.ceil(box_X+(box_H/2)); 
var moveSetp = (box_W/2)/10//设定为10次移动,完成左边的图片显示。这里求出每次移动多少像素,算移动一次?; 
$(".PIC360").mousemove(function(event){ 
var evX = event.pageX; 
var evY = event.pageY; 
//判断是向左还是向左 
if(center_X - evX>=0){ 
changePic(evX,evY,"left") 
}else{ 
changePic(evX,evY) 
} 
function changePic(mX,mY,f){ 
if(f){ 
//求出鼠标移动了多少次,每次对应一个LI的索引。 
var index = Math.ceil(Math.abs((mX - center_X)/moveSetp)); 
$(".PIC360 li").eq(index).show().siblings().hide(); 
}else{ 
var index = Math.ceil(Math.abs((mX - center_X)/moveSetp)); 
var li_lengt = $(".PIC360 li").length; 
$(".PIC360 li").eq(li_lengt-index).show().siblings().hide(); 
} 
} 
}) 
})

一、功能分析:

1.鼠标在图片区域向左滑动,图片“向左转动”。

2.鼠标在图片区域向右滑动,图片“向右转动”。

二、功能分析:

2.1如何判断鼠标在图片上面的滑动方向,即如何知道鼠标是向左还是向右?

以图片的中心为参照,在中心点左边,就是向左,在中心点右边,就是向右。解决方法,是把鼠标当前的X坐标值,与中心点的X坐标值,相减如果是负数就是向左的,如果是正数,就是向右的。

2.2鼠标滑动多少距离,图片切换一张(转动的实质,是不同面的图片,在切换显示)?

分析:2.21整个图片一共有18张,向左切换10张,向右就是切换8张。这样所有的图片,都能显示出来,即可以有360度的效果。

2.22鼠标在图片左边和右边移动的最大距离是图片宽度的一半,如果我设定10次移动让图片全部切换一次,那么就用这个最大距离除以10,就得到每次移动多少距离,算一次,而这一次就要切换一张图片。

DEMO下载 http://demo.3water.com/js/2012/mypic360/

Javascript 相关文章推荐
利用js获取服务器时间的两个简单方法
Jan 08 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
Jun 19 Javascript
DOM 事件流详解
Jan 20 Javascript
jquery实现select下拉框美化特效代码分享
Aug 18 Javascript
JavaScript小技巧整理
Dec 30 Javascript
Javascript实现单例模式
Jan 24 Javascript
vue.js+boostrap项目实践(案例详解)
Sep 21 Javascript
使用socket.io制做简易WEB聊天室
Jan 02 Javascript
Vue项目中跨域问题解决方案
Jun 05 Javascript
react实现换肤功能的示例代码
Aug 14 Javascript
Vue Autocomplete 自动完成功能简单示例
May 25 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
Aug 06 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
Jun 14 #Javascript
jquery 之 $().hover(func1, funct2)使用方法
Jun 14 #Javascript
Javascript生成json的函数代码(可以用php的json_decode解码)
Jun 11 #Javascript
javascript倒计时功能实现代码
Jun 07 #Javascript
基于jQuery的计算文本框字数的代码
Jun 06 #Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 #Javascript
Javascript创建自定义对象 创建Object实例添加属性和方法
Jun 04 #Javascript
You might like
如何使用动态共享对象的模式来安装PHP
2006/10/09 PHP
PHP Undefined index报错的修复方法
2011/07/17 PHP
深入PHP异步执行的详解
2013/06/03 PHP
php无限遍历目录示例
2014/02/21 PHP
php封装的smarty类完整实例
2016/10/19 PHP
PHP实现的简单操作SQLite数据库类与用法示例
2017/06/19 PHP
随机显示经典句子或诗歌的javascript脚本
2007/08/04 Javascript
事件绑定之小测试  onclick && addEventListener
2011/07/31 Javascript
Javascript封装DOMContentLoaded事件实例
2014/06/12 Javascript
js获取元素相对窗口位置的实现代码
2014/09/28 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
轻松掌握JavaScript享元模式
2016/08/27 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
详解nodejs微信公众号开发——5.素材管理接口
2017/04/11 NodeJs
JS判断时间段的实现代码
2017/06/14 Javascript
vue数字类型过滤器的示例代码
2017/09/07 Javascript
解读vue生成的文件目录结构及说明
2017/11/27 Javascript
微信小程序获取音频时长与实时获取播放进度问题
2018/08/28 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
C#程序员入门学习微信小程序的笔记
2019/03/05 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
[03:55]2014DOTA2国际邀请赛 Fnatic经理采访赢DK在情理之中
2014/07/10 DOTA
[01:14]英雄,所敬略同——2018完美盛典宣传视频4K
2018/12/05 DOTA
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
利用一个简单的例子窥探CPython内核的运行机制
2015/03/30 Python
Python生成数字图片代码分享
2017/10/31 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
2018/10/09 Python
基于CSS3实现的漂亮Menu菜单效果代码
2015/09/10 HTML / CSS
浅谈h5自定义audio(问题及解决)
2016/08/19 HTML / CSS
党支部群众路线整改措施思想汇报
2014/10/10 职场文书
大学生旷课检讨书1000字
2015/02/19 职场文书
2015年社区宣传工作总结
2015/05/20 职场文书
培训感想范文
2015/08/07 职场文书