今天我要给大家介绍一款模拟翻书的插件,BookBlock 为我们提供了一个翻页导航,让我们体验翻书的效果。任何内容都可以应用到该插件里面,比如图片和文字。该插件用到了jQuery++(对jquery有很多附加组件)。
接下来我们就来看看 BookBlock 的神奇效果吧。
width="474" height="300" title="翻书插件" alt="翻书插件"/>
alt=""/>
下面我就 demo 来讲解实现的方法,其它两个demo类似,可以查看源码。
1、引入以下的js和css文件
<link rel="stylesheet" type="text/css" href="css/style.css"> <link rel="stylesheet" type="text/css" href="css/custom.css"> <script type="text/javascript" src="js/modernizr.custom.79639.js"></script> <noscript> <link rel="stylesheet" type="text/css" href="css/noJS.css" /> </noscript> <script type="text/javascript"src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript" src="js/jquery.bookblock.js"></script>
2、加入以下js代码,调用插件
<script type="text/javascript">
$(function() {
var Page = (function() {
var config = {
$bookBlock: $('#bb-bookblock'),
$navNext: $('#bb-nav-next'),
$navPrev: $('#bb-nav-prev'),
$navJump: $('#bb-nav-jump'),
bb: $('#bb-bookblock').bookblock({
speed: 800,
shadowSides: 0.8,
shadowFlip: 0.7
})
},
init = function() {
initEvents();
},
initEvents = function() {
var $slides = config.$bookBlock.children(),
totalSlides = $slides.length;
// add navigation events
config.$navNext.on('click',
function() {
config.bb.next();
return false;
});
config.$navPrev.on('click',
function() {
config.bb.prev();
return false;
});
config.$navJump.on('click',
function() {
config.bb.jump(totalSlides);
return false;
});
// add swipe events
$slides.on({
'swipeleft': function(event) {
config.bb.next();
return false;
},
'swiperight': function(event) {
config.bb.prev();
return false;
}
});
};
return {
init: init
};
})();
Page.init();
});
</script>
3、在body标签中加入以下格式的html代码,div#bb-bookblock 是整个插件的外部容器。div#bb-item 则是每一张图片的实现代码。
<div id="bb-bookblock" class="bb-bookblock"> <div class="bb-item"> <!-- custom content --> </div> <div class="bb-item"> <!-- ... --> </div> <div class="bb-item"> <!-- ... --> </div> <div class="bb-item"> <!-- ... --> </div> <!-- ... --> </div> <nav> <a id="bb-nav-prev" href="#">Previous</a> <a id="bb-nav-next"href="#">Next</a> <a id="bb-nav-jump" href="#" title="Go to last item">Last page</a> </nav>
最下面还有一段 nav 的代码,里面包含了3个 a 标签。每个 a 标签都表示一个图片下方的导航按钮。
即“上一张”、“下一张”、“最后一张”
可以在 jquery.bookblock.js 中直接配置
// 翻转变换的速度 ms.
speed : 1000,
//翻转变换的缓动效果.
easing : 'ease-in-out',
//如果设置为true,那么正在翻转的页面和两边都会有一层阴影
shadows : true,
// 两边的阴影的透明度(当翻转页面覆盖到上面的时候)
// value : 0.1 - 1
shadowSides : 0.2,
// 正在翻转的图片上的阴影的透明度
// value : 0.1 - 1
shadowFlip : 0.1,
//透视值
perspective : 1300,
// 是否当达到最后一项的时候显示第一项(循环)
circular : false,
//是否指定一个选择器用来触发 netx() 函数。比如: '#bb-nav-next'.
nextEl : '',
// 是否指定一个选择器用来触发 prev() 函数。
prevEl : '',
// 自动播放:如果设置为 ture 那么将会覆盖 circular 参数值
autoplay : false,
// 当设置为自动播放的时候,两个项之间的切换时间间隔 ms
interval : 3000,
// 翻转变换后的回调函数
// page : 当前项的索引
// isLimit :如果当前项是最后一项或者是第一项就为 true
onEndFlip : function( page, isLimit ) { return false; },
// 翻转变换前的回调函数
// page : 当前项的索引
onBeforeFlip: function( page ) { return false; }