使用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="https://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.css" />
<script src="https://code.jquery.com/jquery-1.7.1.min.js"></script>
<script src="https://code.jquery.com/mobile/1.1.1/jquery.mobile-1.1.1.min.js"></script>
代码如下:
<p data-role="page" id="slide1" data-theme="a" data-transition="fade">
<p data-role="header">
<h1>slide 1</h1>
</p>
<p data-role="content">
</p>
</p>
代码如下:
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;
};
代码如下:
$(document).keydown(function(e) {
if(e.keycode ==39) goforward(); //right
else if(e.keycode ==37) goback(); //left
})
.bind("swiperight", goforward )
.bind("swipeleft", goback );
代码如下:
$(':jqmdata(role=page)').live( 'pagebeforecreate',function(event){
var slide = $(this);
// 找到footer
var footer = $(":jqmdata(role=footer)", slide );
if( !footer.length ) {
//添加到页面底部
footer = $('<p data-role="footer" data-position="fixed" data-fullscreen="true"/>').appendto(slide);
};
// add nav. bar
footer.html('<p data-role="navbar">'+
'[list]'+
'[*]<a data-icon="back"></a>
'+
'[*]<a data-icon="home"></a>
'+
'[*]<a data-icon="forward"></a>
' +
'[/list]'+
'</p>');
// 处理前,后页的点击按钮
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')
};
//.........
});
代码如下:
<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);
});
};
如对本文有疑问, 点击进行留言回复!!
同事牛逼啊,写了个隐藏 bug,我排查了 3 天才解决问题!
【JavaScript笔记(一)】万丈高楼平地起 - 基本概念篇
轻松解决 org.apache.taglibs.standard.tlv.JstlCoreTLV 困惑
网友评论