首頁 >web前端 >js教程 >使用jquery mobile做幻燈播放效果實現步驟_jquery

使用jquery mobile做幻燈播放效果實現步驟_jquery

WBOY
WBOY原創
2016-05-16 17:44:361497瀏覽

使用jquery mobile,可以輕鬆實現幻燈播放效果,下面講解下。
1、引入相關的jqury mobile類別庫

複製程式碼


程式碼如下所示






jQuery Mobile Presentation

2、每個需要播放投影片的頁面基本結構 複製程式碼

程式碼如下:




Slide 1





3、接下來是每張幻燈片之間的來回導航了,代碼為複製代碼

程式碼如下:


var changeSlide = function(toSlide){
if(toSlide.length)
$.mobile.changePage( toSlide.length)
$.mobile. 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 getPtionSlide = (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 = $('
').appendTo(slide);
};
// add nav. bar
footer.html ('
'
'[list]'
'[*]
'
' [*]
'
'[*]
'
' [/list]'
'
');
// 處理前,後頁的點擊按鈕
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', '#attr ('id') )
}else{
// 禁止其按鈕
forwardButton.addClass('ui-disabled')
};
//....... ..
});


6、根據情況加載圖片 如果幻燈片很多的話,不應該全部加載圖片,應該先加載小的圖片,並且可以根據螢幕大小判斷用什麼圖片,例如:

複製代碼 代碼如下:
使用jquery mobile做幻燈播放效果實現步驟_jquerydata-small="..."
data-large="..."/>


判斷使用方法

複製程式碼 程式碼如下:
程式碼如下:


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
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn