turn.js教程及总结

4,669 阅读3分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第3天,点击查看活动详情

先看一眼我制作的简单demo演示图

Vizard_20220409_114104 (1).gif

这部分主要用作演示及养眼 接下来我们来抛开演示图来讲一下如何使用

turn简介

一个基于jquery用来实现3d翻书效果的插件

使用所需

jquery.js、turn.js
这里面jquery全网一查都是, turn.js官网下载太慢了,可以通过下方链接查看demo

demo下载

基本用法

    $('#book').turn({
        acceleration: true, // 是否启动硬件加速 如果为触摸设备必须为true
	pages: 11, // 页码总数
	elevation: 50, // 这个忘记是什么了
	height: 200, // 高度 单位 px
	gradients: true, // 是否显示翻页阴影效果
	when: {
		// 翻页前触发
		turning: function (e, page, view) {
                    
		},
                // 翻页后触发
		turned: function (e, page) {
			
                }
	});

以上就是js的基本用法了,只需要创建一个容器元素和一些代表页码的子元素就可以实现基本的翻书效果了

    <div id="book">
	<div class="odd" id="page1"></div>
	<div class="even" id="page2"></div>
	<div class="odd" id="page3"></div>
	<div class="even" id="page4"></div>
    </div>

效果图 效果图.gif

css样式


	#book {
		width: 90vw;
		margin: 0 auto;
		box-shadow: 0 0 15px #4d4c4c;
	}

	#book .turn-page {
		background-color: white;
	}

	#book .cover {
		background: #333;
	}

	#book .cover h1 {
		color: white;
		text-align: center;
		font-size: 50px;
		line-height: 500px;
		margin: 0px;
	}

	#book .loader {
		/* background-image: url(loader.gif); */
		width: 24px;
		height: 24px;
		display: block;
		position: absolute;
		top: 238px;
		left: 188px;
	}

	#book .data {
		text-align: center;
		font-size: 40px;
		color: #999;
		line-height: 500px;
	}

	#book .odd {
		background-image: -webkit-linear-gradient(left, #FFF 95%, #ddd 100%);
		background-image: -moz-linear-gradient(left, #FFF 95%, #ddd 100%);
		background-image: -o-linear-gradient(left, #FFF 95%, #ddd 100%);
		background-image: -ms-linear-gradient(left, #FFF 95%, #ddd 100%);
		box-shadow: 0 0 15px #4d4c4c;
	}

	#book .even {
		background-image: -webkit-linear-gradient(right, #FFF 95%, #ddd 100%);
		background-image: -moz-linear-gradient(right, #FFF 95%, #ddd 100%);
		background-image: -o-linear-gradient(right, #FFF 95%, #ddd 100%);
		background-image: -ms-linear-gradient(right, #FFF 95%, #ddd 100%);
		box-shadow: 0 0 15px #4d4c4c;
	}

turn常用配置项

名称介绍默认值可选值
acceleration是否启动硬件加速,移动端必须设置为true否则将不可使用falsetrue/false
autoCenter是否自动居中falsetrue/false
direction翻页方向ltrltr(从左到右) / rtl(从右到左)
display显示模式doublesingle(单页) / double(双页码)
duration过渡时间600msinfinite
gradients是否显示翻页阴影效果truetrue / false
height高度infinite
pages页码总数infinite
when监听事件下方有介绍
disable是否禁止翻页falsetrue / false

when 常用监听事件

监听事件名介绍
turning翻页前触发
turned翻页后触发
start页面开始时触发
end页面停止时触发
first第一页触发
last最后一页触发

turn 常用方法

名称用途参数
page跳转到某一页容器元素.turn('page', 页码)
addpage在容器中添加页码容器元素.turn('addpage', 元素, 页码)
destroy删除所有页面容器元素.turn("destroy").remove()
next下一页容器元素.turn("next")
previous上一页容器元素.turn("previous")
removepage删除指定页容器元素.turn("removepage", 页码)
version获取当前发布版本容器元素.turn("version")
stop停止当前过渡效果,可以搭配page方法使用在跳转到某一页时停止效果容器元素.turn('page', 页码).stop()

以上就是trun的教程了。

总结

这真的是一款非常优秀的插件,短短几行就解决了我的业务需求,而且细节处理的非常棒,翻书的阴影效果、翻书到一定角度带来的直角、翻书的效果等,很推荐有要做类似效果的码友们使用,其拓展性极强,甚至可以完全做成一本可以真正意义上的书。

结语

   天才无非是长久的忍耐,努力吧!