`
taro
  • 浏览: 136296 次
  • 性别: Icon_minigender_1
  • 来自: 东京
社区版块
存档分类
最新评论

为jQuery slideshow增加触摸滑动功能

阅读更多

文章出自本人博客:http://www.tarobjtu.com/blog/slide-show-touch-move/

 

       最近项目中多处用到slideshow(图片浏览)功能,但不同项目客户希望的实现方式不同,功能不一,如果在现有jQuery plugin插件上修改的话,一来会有未知bug,二来改他人代码比自己重写还费事,索性自己写一个。想添加什么功能由自己。
        其中一个项目需要支持PC与智能机,这牵涉出两个问题,一是跟随屏幕尺寸变更问题,二是触摸屏滑动实现切换图片功能。

跟随屏幕尺寸变更问题

       共有3种类型尺寸,PC端屏幕宽度960px,手机竖屏320px,手机横评480px。页面布局方面用CSS3的media query实现尺寸调整。JS端实在没办法,只能通过监听浏览器窗口尺寸变化实现横竖屏切换时,slideshow的正常运转。

 

触摸屏滑动实现切换图片功能

       如果不熟悉解智能手机(iOS与Android)浏览器触摸事件的话,可以先阅读这两篇文章:
1、《针对多点触控浏览器进行的开发》(翻译的比较僵硬,有些术语不够专业,但好文章一枚)
2、《基于JavaScript touch事件的自定义按钮示例》
以下贴出我的代码实现:

// $display : 图片的显示窗口
// .banner img : 图片本身
$display.on('touchstart', '.banner img', function(e){
	var touch = e.originalEvent,
		startX = touch.changedTouches[0].pageX;
						
	$display.on('touchmove', function(e){
		e.preventDefault();
						
		touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
						
		if(touch.pageX - startX > 10){
			$display.off('touchmove');
			reflash(function(){
				var next = index.prev();
				animate(next, 'prev');
			});
		}
		else if (touch.pageX - startX < -10){
			$display.off('touchmove');
			reflash(function(){
				var next = index.next();
				animate(next, 'next');
			});
		}
	});
					
	/* return false; */
					
}).on('touchend',function(){
	$display.off('touchmove');
});
   

触摸事件与鼠标点击事件

项目中的图片包含一个链接,当用户操纵图片时,到底是触发mouseClick事件还是touchStart,touchMove,touchEnd事件成为一个困惑。iOS与Android事件的运行机制避免了这个问题。
       鼠标点击事件在触摸事件touchStart,touchEnd事件触发之后触发。两个方法可以阻止鼠标事件触发:

  1. 不执行与事件关联的默认动作。即使用return false; 或者event.preventDefault();但此方法将使图片失去打开链接功能。
  2. 当touchMove被执行时,鼠标点击事件mouseClick会被自动取消。
分享到:
评论

相关推荐

    jquery滑动图片效果

    **jQuery滑动图片效果详解** 在网页设计中,动态效果总是能吸引用户的注意力,其中滑动图片效果是一种常见的展示方式,常用于首页信息展示或产品轮播。本篇将深入探讨如何利用jQuery库来实现这一功能。 jQuery是一...

    jquery-slideshow:用于网络的图像幻灯片

    jQuery Slideshow 是一个强大的JavaScript库,专为在网络上创建引人入胜的图像幻灯片展示而设计。它利用了jQuery的灵活性和广泛支持,使得创建动态、交互式的图片轮播变得简单易行。在网页设计中,幻灯片通常用于...

    jQuery Camera slideshow

    2. **多过渡效果**:提供多种过渡效果,如淡入淡出、滑动、缩放等,这些过渡效果可以为你的幻灯片增加动态感和吸引力。 3. **自定义设置**:你可以自由配置每张幻灯片的显示时间、动画速度、自动播放间隔以及是否...

    Jquery特效(图片滑动)

    **jQuery 图片滑动特效详解** 在Web开发中,jQuery是一个强大的JavaScript库,它极大地简化了JavaScript的DOM操作,事件处理以及动画制作等任务。在这个"Jquery特效(图片滑动)"项目中,我们将深入探讨如何利用...

    jQuery无敌代码,各种图片滑动特效集合.rar

    《jQuery图片滑动特效解析与实现》 在Web开发领域,jQuery库以其简洁的API和强大的功能,成为了JavaScript开发者们的首选工具之一。本资源“jQuery无敌代码,各种图片滑动特效集合”则集中展示了jQuery在图片展示...

    jquery插件库-炫酷的jquery幻灯片插件.zip

    jQuery插件是jQuery社区开发的一系列扩展,它们增加了jQuery的功能,提供了丰富的组件和特效。这些插件通常包含了预定义的函数、样式和事件处理,使得开发者可以快速构建功能丰富的网站。幻灯片插件就是其中的一种,...

    Jquery Cycle 实现图片切换功能(一般用于首页)

    它支持多种过渡效果,如淡入淡出、滑动、缩放等,同时还能设置自动播放、导航按钮和计时器等交互功能。 ### 2. 安装与引入 首先,你需要在HTML文件中引入jQuery库和jQuery Cycle插件的JavaScript文件。通常,...

    jQuery mobile相册的一种样式

    通过以上步骤,我们可以利用jQuery Mobile创建一个既美观又功能齐全的气泡式相册。这样的相册样式不仅适用于网站,也适合移动应用,为用户提供了一种直观且有趣的图片浏览体验。无论是在个人博客、产品展示还是社交...

    jQuery mobile标题式的简介(部分联网)

    jQuery Mobile 会将这个简单的 HTML 结构转化为具有触摸友好的交互效果和视觉吸引力的标题栏。它会自动添加背景颜色、边框、内边距等样式,使得标题在不同设备上都能呈现出良好的视觉效果。 在标题中,还可以添加...

    图片轮播、文字图片相结合滑动切换效果

    - `touch`:是否开启触摸滑动。 - `directionNav` 和 `keyboard`:控制方向导航按钮和键盘操作的可见性。 - `minItems` 和 `maxItems`:设定最少和最多同时展示的项目数。 - `move`:一次滑动的单元个数。 5. *...

    jquery幻灯非常漂亮

    2. 实现触摸滑动支持,使移动设备用户也能轻松操作。 3. 添加指示器,显示当前幻灯片的编号或状态。 4. 增加动画效果的多样性,比如左右滑动、上下滑动等。 5. 配合响应式设计,确保在不同设备上都有良好的显示效果...

    一个jquery图片滚动效果

    在实际应用中,可能还需要考虑更多细节,如添加指示器显示当前图片位置、支持触摸滑动、响应式布局等。"imageSliver"可能指的是这个图片滚动效果的示例代码或资源包,包含了实现这一功能所需的图片和样式文件。总之...

    jquery源代码在手机中显示按钮控制图片幻灯片切换

    对于幻灯片切换功能,jQuery提供了一系列的方法和API,使得开发者可以快速构建动态的图片滑动效果。 要实现这个功能,我们首先要准备HTML结构,包括幻灯片容器和控制按钮。HTML部分可能如下: ```html &lt;div id="...

    jQuery Slide Show – jQuery幻灯片效果

    这个名为`jQuery-SlideShow`的压缩包可能包含了实现上述功能的源代码、样式表以及示例图片。通过学习和研究这些文件,你可以更好地理解如何利用jQuery创建自定义的幻灯片效果,并根据实际需求进行调整和扩展。 总的...

    jQuery的相册效果

    这些功能可以通过jQuery插件如`Hammer.js`来实现,或者使用现代浏览器的触摸事件API。 总结一下,创建一个jQuery相册效果涉及以下几个步骤: 1. 设置HTML结构,包含图片容器和图片元素。 2. 引入jQuery库。 3. 使用...

    jquery-网页特效代码资源

    例如,"jquery-photo-gallery"可能包含了用于创建画廊的代码,这可能包括图片的懒加载(lazy loading)、滑动展示(slideshow)以及鼠标悬停时的预览效果(hover preview)。这些功能都得益于jQuery提供的便利函数,...

    jquery图片轮播

    1. **事件监听**:监听鼠标滑动或触摸滑动事件,如`swipeleft`和`swiperight`。 2. **计算偏移量**:在滑动事件触发时,获取滑动的像素值,以判断是否达到切换图片的阈值。 3. **平滑过渡**:通过CSS3的`...

    jquery图文幻灯片.rar

    2. 添加触屏支持:针对移动设备,添加触摸滑动事件,使幻灯片在手机和平板上也能流畅使用。 3. 模块化:将幻灯片功能封装为一个可复用的插件,方便在其他项目中快速应用。 总结,jQuery 图文幻灯片是网页动态展示的...

    jquery时尚图片幻灯片展示.rar

    1. 添加触摸滑动支持,适应移动设备。 2. 实现预加载效果,提高用户体验。 3. 增加导航点或箭头,指示当前幻灯片位置。 4. 配合AJAX加载更多图片,实现无限循环。 总结,jQuery时尚图片幻灯片展示是网页设计中的...

    Jquery幻灯片焦点图插件

    jQuery作为一款轻量级、功能强大的JavaScript库,为创建这种效果提供了便利。本篇将详细介绍如何使用jQuery实现幻灯片焦点图插件,并结合给出的文件名解析其工作原理。 首先,我们来看标题“jQuery幻灯片焦点图插件...

Global site tag (gtag.js) - Google Analytics