作家
登录

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

作者: 来源:www.28hudong.com 2013-03-30 00:15:21 阅读 我要评论

使用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') }; //......... }); 6、根据情况加载图片 如果幻灯片很多的话,不应该全部加载图片,应该先加载小的图片,并且可以根据屏幕大小判断用什么图片,比如: 复制代码 代码如下: <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

  推荐阅读

  Javascript图像处理—亮度对比度应用案例

前言 上一篇文章,我们讲解了图像处理中的卷积操作和平滑(也就是模糊)处理,这篇文章我们进行亮度和对比度的变化。 其实,亮度是啥玩意? 亮度就是比较亮眼咯…… 实际上对于RGBA颜色空间,变亮其实就等于R、G、>>>详细阅读


本文标题:使用jquery mobile做幻灯播放效果实现步骤

地址:http://www.17bianji.com/kaifa2/JS/22652.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)