`

使用jquery mobile做幻灯播放效果

阅读更多
使用jquery mobile,可以很容易实现幻灯播放效果,下面讲解下。

1)引入相关的jqury mobile类库
  
<!DOCTYPE html>
<html>
<head>
   <meta charset="utf-8" />
   <meta name="viewport" content="width=device-width, initial-scale=1" /> 
   <title> jQuery Mobile Presentation</title> 
   <link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.css" />
   <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
   <script src="http://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script>




2 每个需要播放幻灯片的页面基本结构
 
<div data-role="page" id="slide1" data-theme="a" data-transition="fade">
   <div data-role="header">
      <h1>Slide 1</h1>
   </div> 
   <div data-role="content">

   </div> 
</div>


3 接下来是每个幻灯片之间的来回导航了,代码为:
   

var changeSlide = function(toSlide){
   if(toSlide.length)
 $.mobile.changePage( toSlide, { transition: toSlide.jqmData('transition') } );
};

// 返回主页
var getHomeSlide = function(){
   return $(':jqmData(role=page):first');
};
// go home
var goHome = function(){
   changeSlide( getHomeSlide() );
   return false;
};

// 到下一页
var getNextSlide = function(slide){
   return slide.next(':jqmData(role=page)');
};
//到下一页
var goForward = function(){
   changeSlide( getNextSlide($.mobile.activePage) );
   return false;
};

// 获得前一个页面
var getPrevSlide = function(slide){
   return slide.prev(':jqmData(role=page)');
};
// 跳到前一个页面
var goBack = function(){
   changeSlide( getPrevSlide($.mobile.activePage) );
   return false;
};




注意一下,使用了 $.mobile.changePage方法来实现页面的跳转,并且跳转是带有
跳转效果参数的,比如:
//transition to the "about us" page with a slideup transition
$.mobile.changePage( "about/us.html", { transition: "slideup"} );

//transition to the "search results" page, using data from a form with an id of "search"
$.mobile.changePage( "searchresults.php", {
type: "post",
data: $("form#search").serialize()
});

而return $(':jqmData(role=page):first');中,实际上jqmData是代替了
jquery的data选择器了。

4 还有一个就是对左右箭头的就是键盘按键的处理了,比如:
  
 
$(document).keydown(function(e) {
   if(e.keyCode ==39) goForward(); //right
   else if(e.keyCode ==37) goBack(); //left
})
.bind("swiperight", goForward )
.bind("swipeleft", goBack );


5 对导航条的处理
  当每个幻灯片加载时,导航条自动加载到页面的footer部分,
这个要在'pagebeforecreate前加载,
$(':jqmData(role=page)').live( 'pagebeforecreate',function(event){
   var slide = $(this);

   // 找到footer
   var footer = $(":jqmData(role=footer)", slide );
   if( !footer.length ) {
//添加到页面底部
      footer = $('<div data-role="footer" data-position="fixed" data-fullscreen="true"/>').appendTo(slide);
   };

   // add nav. bar
   footer.html('<div data-role="navbar">'+
               '[list]'+
                  '[*]<a data-icon="back"></a>
'+
                  '[*]<a data-icon="home"></a>
'+
                  '[*]<a data-icon="forward"></a>
' +
               '[/list]'+
            '</div>');

   // 处理前,后页的点击按钮
   var backButton = $(':jqmData(icon=back)', footer).click( goBack );
   var homeButton = $(':jqmData(icon=home)', footer).click( goHome );
   var forwardButton = $(':jqmData(icon=forward)', footer).click( goForward );

   // 获得前,后,主页
   var prevSlide = getPrevSlide( slide ), homeSlide = getHomeSlide(), nextSlide = getNextSlide( slide ) ;

   // 是否存在前一页,存在的话设置可以点击的样式
   if( prevSlide.length ) {
      
      backButton.attr('href', '#'+ prevSlide.attr('id') );
      homeButton.attr('href', '#'+ homeSlide.attr('id') )
   }else{
      //禁止其按钮
      backButton.addClass('ui-disabled');
      homeButton.addClass('ui-disabled')
   };

   // 是否存在后一页
   if( nextSlide.length ) {
           forwardButton.attr('href', '#'+ nextSlide.attr('id') )
   }else{
      // 禁止其按钮
      forwardButton.addClass('ui-disabled')
   };

   //.........
});


 

5 根据情况加载图片
   如果幻灯片很多的话,不应该全部加载图片,应该先加载小的图片,并且可以根据屏幕大小判断用什么图片,比如:
<img src="empty.gif" class="photo"
         data-small="..." 
         data-large="..."/>


判断使用方法:

var loadImages = function(slide) {
	var width = $(window).width();

//根据屏幕大小判断使用图片大小	
	var attrName = width > 480? 'large' : 'small';

	$('img:jqmData('+attrName+')', slide).each(function(){
		var img = $(this);
		var source = img.jqmData(attrName);
				if(source) img.attr('src', source).jqmRemoveData(attrName);
	});
};


整个运行效果见:
http://moretechtips.googlecode.com/svn/mobile-presentation/index.htm
4
7
分享到:
评论

相关推荐

    使用jquery mobile做幻灯播放效果实现步骤

    从给定文件中,我们可以提取以下知识点来阐述如何使用jQuery Mobile实现幻灯播放效果。 首先,我们需要了解什么是jQuery Mobile。jQuery Mobile是jQuery的一个移动应用框架,它用于开发响应式跨平台移动应用。它的...

    jQuery mobile旋转式的相册

    这种相册设计通常包括自动循环播放的幻灯片效果,以及用户可以通过手势或导航按钮来手动切换图片的功能。以下是一些关键知识点: 1. **HTML结构**:首先,我们需要为每个图片创建一个容器,这通常是一个`&lt;div&gt;`元素...

    jquery mobile移动端幻灯片滑动切换效果

    移动端幻灯片滑动切换效果是使用jQuery Mobile框架实现的一种用户界面交互方式,主要应用于移动设备上。它允许用户通过滑动或者点击操作在不同的幻灯片内容之间切换。本知识点将详细介绍如何在移动端实现这样的效果...

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

    jQuery Mobile 还支持“平移幻灯片”(panning-slideshow)效果,这是一种在页面标题中展示动态内容的方式,比如轮播图片或文本。这可以通过结合使用 `swipe` 事件和 jQuery 的动画功能来实现。以下是一个简单的例子...

    jQuery适应手机mobile左右全屏幻灯片切换插件

    这个"jQuery适应手机mobile左右全屏幻灯片切换插件"正是为了解决这个问题而设计的。它利用了jQuery库的强大功能,使开发者可以轻松地在手机和平板等移动设备上实现流畅、响应式的幻灯片效果。 jQuery是一个轻量级、...

    jQuery实现的适应手机mobile左右全屏幻灯片切换效果源码.zip

    【标题】中的“jQuery实现的适应手机mobile左右全屏幻灯片切换效果源码”指出,这个压缩包包含了一个使用jQuery库开发的移动端全屏幻灯片切换效果的源代码。这种效果通常用于网站的首页或者产品展示部分,提供一种...

    jquery图片分组幻灯片.rar

    【jQuery图片分组幻灯片】是一个常见的网页交互效果,主要应用于网站的展示区或广告轮播,通过JavaScript库jQuery实现动态切换多组图片,为用户提供流畅、吸引人的视觉体验。这种幻灯片通常具备自动播放、手动切换、...

    jQuery左侧圆形左右按钮多种特效幻灯片.zip

    总的来说,"jQuery左侧圆形左右按钮多种特效幻灯片"是一个很好的学习和实践案例,它展示了如何利用jQuery创建交互性强、视觉效果丰富的幻灯片组件。对于想要提升网页动态效果的开发者来说,这是一个值得研究和借鉴的...

    jquery全屏自适应宽度和手机滑动幻灯片

    本教程将详细讲解如何利用jQuery和jQuery Mobile创建一个全屏自适应宽度且支持手机手势滑动的幻灯片效果。 首先,我们需要了解jQuery的核心概念。jQuery通过提供一系列方便的函数,使得开发者可以更轻松地操作DOM...

    jQuery实现可滚动的横向和纵向的时间轴幻灯片效果

    在本文中,我们将深入探讨如何使用jQuery来创建一个可滚动的横向和纵向的时间轴幻灯片效果。这个功能常用于展示项目进度、历史事件或重要里程碑,为用户提供一种直观且吸引人的浏览方式。 首先,我们需要了解jQuery...

    jQuery左右切换焦点轮播幻灯片.zip

    在创建动态网页效果时,jQuery提供了丰富的API,使得开发者能够更便捷地操作DOM元素,实现各种复杂的交互功能,如我们的焦点轮播幻灯片。 二、轮播幻灯片的基本结构 一个基本的轮播幻灯片通常包含以下组件: 1. ...

    jQuery实现的支持移动触摸设备幻灯片效果源码.zip

    在这个“jQuery实现的支持移动触摸设备幻灯片效果源码”中,我们将探讨如何使用jQuery来创建一个适应移动设备触摸操作的幻灯片效果。 首先,幻灯片效果通常涉及到图片或内容在预设的时间间隔内自动切换,同时提供...

    jQuery适应手机mobile左右全屏幻灯片切换插件.zip

    标题中的“jQuery适应手机mobile左右全屏幻灯片切换插件”是指一个专门设计用于移动端设备的jQuery插件,它提供了全屏滑动效果,使用户可以在手机或平板电脑上流畅地浏览内容,如产品展示、图片轮播或介绍。...

    jquery mobile 插件

    Diapo允许开发者轻松地创建具有动画过渡效果的幻灯片,可以自定义导航按钮、自动播放、定时器等功能,为用户呈现美观且动态的内容展示。 **filamentgroup-jqm-pagination-6a7bdb4 插件** `filamentgroup-jqm-...

    多屏垂直滚动jQuery宽屏幻灯片代码

    【多屏垂直滚动jQuery宽屏幻灯片代码】是一种网页设计技术,主要用于创建具有视觉冲击力的、全屏展示的动态幻灯片效果。这种效果通常应用于网站的首页或者产品展示区域,以吸引用户注意力,提供更加丰富的用户体验。...

Global site tag (gtag.js) - Google Analytics