为了实现图书翻页的效果我们在网上可以看到很多教程 在这里推荐turn.js 网上的turn.js 有api 不过是英文的  很多人看起来不方便 .关于代码也是奇形怪状在这里我将详细讲解如何使用turn.js实现翻页效果 ,本篇文章只是讲解 turn.js 如何使用!!!!!!! 文章最后提供源码下载,结合源码看本文,turn.js更简单!

首先附上个人的文件路径

对于css   和 js文件不需要过多的解释   在这里要注意的是pages文件夹   这里个文件夹下放的是需要预览的图片文件    所以

我们想展示的资源  就放在这个目录下面!!!!!!

接下来  先给大家看一下pages下面的资源名称

可以看到  所有的资源都以数字命名  至于为什么  我们在之后会讲解

接下来  我们开始使将turn.js结合到我们自己的项目中  先附上index.html中的代码

Using turn.js and the new zoom feature

$(function () {

var next_button = $(".next-button"); //初始化左右箭头

var previous_button = $(".previous-button");

setArrows();

});

function loadApp() {

$('#canvas').fadeIn(1000);

var flipbook = $('.magazine');

// Check if the CSS was already loaded

if (flipbook.width() == 0 || flipbook.height() == 0) {

setTimeout(loadApp, 10);

return;

}

// 创建flipbook

flipbook.turn({

width: 1200,

height: 781,

duration: 1000, //翻页速度,值越小越快

// Hardware acceleration

acceleration: !isChrome(),

// Enables gradients

gradients: true,

// Auto center this flipbook

autoCenter: true,

// Elevation from the edge of the flipbook when turning a page

elevation: 50,

// The number of pages

pages: 8,

// Events

when: {

turning: function (event, page, view) {

var book = $(this),

currentPage = book.turn('page'),

pages = book.turn('pages');

// Update the current URI

Hash.go('page/' + page).update();

// Show and hide navigation buttons

disableControls(page);

},

turned: function (event, page, view) {

disableControls(page);

$(this).turn('center');

if (page == 1) {

$(this).turn('peel', 'br');

}

},

missing: function (event, pages) {

// Add pages that aren't in the magazine

for (var i = 0; i < pages.length; i++)

addPage(pages[i], $(this));

}

}

});

// Zoom.js

$('.magazine-viewport').zoom({

flipbook: $('.magazine'),

max: function () {

return largeMagazineWidth() / $('.magazine').width();

},

when: {

swipeLeft: function () {

$(this).zoom('flipbook').turn('next');

},

swipeRight: function () {

$(this).zoom('flipbook').turn('previous');

},

resize: function (event, scale, page, pageElement) {

if (scale == 1)

loadSmallPage(page, pageElement);

else

loadLargePage(page, pageElement);

},

zoomIn: function () {

$('.made').hide();

$('.magazine').removeClass('animated').addClass('zoom-in');

$('.zoom-icon').removeClass('zoom-icon-in').addClass('zoom-icon-out');

if (!window.escTip && !$.isTouch) {

escTip = true;

$('

html('

Press ESC to exit

').

appendTo($('body')).

delay(2000).

animate({opacity: 0}, 500, function () {

$(this).remove();

});

}

},

zoomOut: function () {

$('.exit-message').hide();

$('.thumbnails').fadeIn();

$('.made').fadeIn();

$('.zoom-icon').removeClass('zoom-icon-out').addClass('zoom-icon-in');

setTimeout(function () {

$('.magazine').addClass('animated').removeClass('zoom-in');

resizeViewport();

}, 0);

}

}

});

// Zoom event

if ($.isTouch)

$('.magazine-viewport').bind('zoom.doubleTap', zoomTo);

else

$('.magazine-viewport').bind('zoom.tap', zoomTo);

// Using arrow keys to turn the page

$(document).keydown(function (e) {

var previous = 37, next = 39, esc = 27;

switch (e.keyCode) {

case previous:

// left arrow

$('.magazine').turn('previous');

e.preventDefault();

break;

case next:

//right arrow

$('.magazine').turn('next');

e.preventDefault();

break;

case esc:

$('.magazine-viewport').zoom('zoomOut');

e.preventDefault();

break;

}

});

// URIs - Format #/page/1

Hash.on('^page\/([0-9]*)$', {

yep: function (path, parts) {

var page = parts[1];

if (page !== undefined) {

if ($('.magazine').turn('is'))

$('.magazine').turn('page', page);

}

},

nop: function (path) {

if ($('.magazine').turn('is'))

$('.magazine').turn('page', 1);

}

});

$(window).resize(function () {

resizeViewport();

}).bind('orientationchange', function () {

resizeViewport();

});

// Events for thumbnails

$('.thumbnails').click(function (event) {

var page;

if (event.target && (page = /page-([0-9]+)/.exec($(event.target).attr('class')))) {

$('.magazine').turn('page', page[1]);

}

});

$('.thumbnails li').

bind($.mouseEvents.over, function () {

$(this).addClass('thumb-hover');

}).bind($.mouseEvents.out, function () {

$(this).removeClass('thumb-hover');

});

if ($.isTouch) {

$('.thumbnails').

addClass('thumbanils-touch').

bind($.mouseEvents.move, function (event) {

event.preventDefault();

});

} else {

$('.thumbnails ul').mouseover(function () {

$('.thumbnails').addClass('thumbnails-hover');

}).mousedown(function () {

return false;

}).mouseout(function () {

$('.thumbnails').removeClass('thumbnails-hover');

});

}

// Regions

if ($.isTouch) {

$('.magazine').bind('touchstart', regionClick);

} else {

$('.magazine').click(regionClick);

}

// Events for the next button

$('.next-button').bind($.mouseEvents.over, function () {

$(this).addClass('next-button-hover');

}).bind($.mouseEvents.out, function () {

$(this).removeClass('next-button-hover');

}).bind($.mouseEvents.down, function () {

$(this).addClass('next-button-down');

}).bind($.mouseEvents.up, function () {

$(this).removeClass('next-button-down');

}).click(function () {

$('.magazine').turn('next');

setTimeout(function () {

setArrows();

}, 300);

});

// Events for the next button

$('.previous-button').bind($.mouseEvents.over, function () {

$(this).addClass('previous-button-hover');

}).bind($.mouseEvents.out, function () {

$(this).removeClass('previous-button-hover');

}).bind($.mouseEvents.down, function () {

$(this).addClass('previous-button-down');

}).bind($.mouseEvents.up, function () {

$(this).removeClass('previous-button-down');

}).click(function () {

$('.magazine').turn('previous');

setTimeout(function () {

setArrows();

}, 300);

});

resizeViewport();

$('.magazine').addClass('animated');

}

// Zoom icon

$('.zoom-icon').bind('mouseover', function () {

if ($(this).hasClass('zoom-icon-in'))

$(this).addClass('zoom-icon-in-hover');

if ($(this).hasClass('zoom-icon-out'))

$(this).addClass('zoom-icon-out-hover');

}).bind('mouseout', function () {

if ($(this).hasClass('zoom-icon-in'))

$(this).removeClass('zoom-icon-in-hover');

if ($(this).hasClass('zoom-icon-out'))

$(this).removeClass('zoom-icon-out-hover');

}).bind('click', function () {

if ($(this).hasClass('zoom-icon-in'))

$('.magazine-viewport').zoom('zoomIn');

else if ($(this).hasClass('zoom-icon-out'))

$('.magazine-viewport').zoom('zoomOut');

});

$('#canvas').hide();

// Load the HTML4 version if there's not CSS transform

yepnope({

test: Modernizr.csstransforms,

yep: ['js/turn.js'],

nope: ['js/turn.html4.min.js'],

both: ['js/zoom.min.js', 'js/magazine.js', 'css/magazine.css'],

complete: loadApp

});

图书浏览界面html代码,javaScript+turn.js实现图书翻页效果实例代码相关推荐

  1. php左右滑动翻页代码,C#_NGUI实现滑动翻页效果实例代码,废话不多说了,直接给大家上 - phpStudy...

    NGUI实现滑动翻页效果实例代码 废话不多说了,直接给大家上干货了. 具体代码如下所示: using UnityEngine; using System.Collections; public cla ...

  2. html制作翻页效果代码,使用原生JS实现滚轮翻页效果的示例代码

    一.滚轮事件 当用户通过鼠标滚轮与页面交互.在垂直方向上滚动页面时,就会触发mousewheel事件,这个事件就是实现全屏切换效果需要用到的.在IE6, IE7, IE8, Opera 10+, Sa ...

  3. android控件翻书效果,android ViewPager实现滑动翻页效果实例代码

    实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下:import android.content.Context;import androi ...

  4. android 翻书动画效果怎么做,android ViewPager实现滑动翻页效果实例代码

    实现ViewPager的滑动翻页效果可以使用ViewPager的setPageTransformer方法,如下: import android.content.Context; import andr ...

  5. Java写js的Ajax代码_用JS写的一个Ajax库(实例代码)

    myajax是一个用js编写的一个跨浏览器的ajax库,支持get, post, jsonp请求,精巧,简单. 一.发送GET请求: myajax.get({ data: {}, //参数 url: ...

  6. html页面色块布局代码,Html 实现动态显示颜色块的报表效果(实例代码)

    利用html的颜色块动态展示数据 *{ padding: 0; margin: 0; } .tubiao,.jihua,.shiji,.riqi{ width: 100%; overflow: hid ...

  7. [存]超酷JS拖拽翻页效果

    DEMO: http://www.lanrentuku.com/js/other-670.html 代码 <html> <head> <title>blog< ...

  8. 超炫JS拖拽翻页效果(左右拖拽html源码)

    <html>             <head>             <title>blog</title>             <FC ...

  9. HTML5电子书翻页效果 代码特效+鼠标点击拖拽滑动翻页+点击书页内容放大+不支持中文

    介绍 源码名称:[HTML5电子书翻页效果]代码特效+鼠标点击拖拽滑动翻页+点击书页内容放大+不支持中文 源码大小:237KB 开发语言:PHP+Mysql 操作系统:Windows,Linux 源码 ...

最新文章

  1. Numba——python面向数组高性能计算库
  2. 2018python好找工作吗-2018年为什么要学习Python?Python还有前景吗?
  3. 说了这么久中台,那你知道中台是什么?在治什么病吗?
  4. 手机端实现6位短信验证码input输入框效果(样式及代码方法)
  5. Lintcode--5(37)--反转一个三位数
  6. javascript学习系列(13):数组中的concat方法
  7. getParameter
  8. 把数据库中的数据制作成Excel数据
  9. 使用rsync+inotify配置触发式(实时)远程同步
  10. 华为数通hcia认证考试题库有多少题?
  11. 高斯分布matlab程序,生成高斯分布的matlab程序
  12. 《Unix传奇》:众神的创世记
  13. 恒生UFX交易接口基本介绍说明
  14. 【PS】443种逼真度超高水彩笔刷打包下载
  15. Power BI——关系函数(RELATED和RELATEDTABLE)
  16. 2021年N1叉车司机最新解析及N1叉车司机模拟考试
  17. 一文读懂authorized_keys和known_hosts
  18. 男生追女生的方法有哪些?
  19. TS在前端发展的当前形式(愚见)
  20. spring定时任务cron为每季度第一个工作日转换为cron表达式

热门文章

  1. 批处理 IF-ERRORLEVEL使用方法
  2. 如何连接MySQL数据库
  3. FFMPEG Tips
  4. Educational Codeforces Round 112(Div.2) ABC题解
  5. 量化股票Akshare是谁创建的?
  6. 计算机系女孩子,计算机系女生自我评价
  7. Centos7下dnscrypt-proxy安装
  8. 嵌入式单片机基础篇(十)之Systick定时器原理及应用
  9. [转]SuspendLayout()用处
  10. 怎么在Linux搭建一个可以装mod的Minecraft服务器(我的世界)