使用jquery mobile做幻灯播放效果实现步骤
使用jquery mobile做幻灯播放效果实现步骤
发布时间:2016-12-30 来源:查字典编辑
摘要:使用jquerymobile,可以很容易实现幻灯播放效果,下面讲解下。1、引入相关的jqurymobile类库复制代码代码如下:jQuery...

使用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"

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教程学习
热门Javascript教程学习
编程开发子分类