mirror of
https://github.com/blasten/turn.js.git
synced 2025-05-20 19:39:22 +08:00
r3
This commit is contained in:
parent
9a978a2526
commit
371b66f23f
141
demos/bible/index.html
Normal file
141
demos/bible/index.html
Normal file
@ -0,0 +1,141 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
|
||||
<script type="text/javascript" src="../../../turn.min.js"></script>
|
||||
|
||||
<style type="text/css">
|
||||
body{
|
||||
background:#ccc;
|
||||
}
|
||||
#bible{
|
||||
width:800px;
|
||||
height:500px;
|
||||
}
|
||||
#bible .turn-page{
|
||||
background-color:white;
|
||||
}
|
||||
#bible .cover{
|
||||
background:#333;
|
||||
}
|
||||
|
||||
#bible .cover h1{
|
||||
color:white;
|
||||
text-align:center;
|
||||
font-size:50px;
|
||||
line-height:500px;
|
||||
}
|
||||
|
||||
#bible .cover p{
|
||||
color:white;
|
||||
text-align:center;
|
||||
font-size:15px;
|
||||
margin:0px;
|
||||
color:#999;
|
||||
}
|
||||
|
||||
#bible .loader{
|
||||
background-image:url(loader.gif);
|
||||
width:24px;
|
||||
height:24px;
|
||||
display:block;
|
||||
position:absolute;
|
||||
top:238px;
|
||||
left:188px;
|
||||
}
|
||||
|
||||
#bible .data{
|
||||
text-align:center;
|
||||
font-size:40px;
|
||||
color:#999;
|
||||
line-height:500px;
|
||||
}
|
||||
|
||||
#controls{
|
||||
width:800px;
|
||||
text-align:center;
|
||||
margin:20px 0px;
|
||||
}
|
||||
#controls input, #controls label{
|
||||
font:30px arial;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="bible">
|
||||
<div class="cover"><h1>The Bible</h1></div>
|
||||
</div>
|
||||
|
||||
<div id="controls">
|
||||
<label for="page-number">Page:</label> <input type="text" size="3" id="page-number">
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
// Sample using dynamic pages with turn.js
|
||||
|
||||
|
||||
// Adds the pages that the book will need
|
||||
function addPage(page, book) {
|
||||
|
||||
// First check if the page is already in the book
|
||||
if (!book.turn('hasPage', page)) {
|
||||
// If not then add the page
|
||||
var newPage = $('<div />', {'class': 'page', 'id': 'page-'+page}).html('<i class="loader"></i>');
|
||||
book.turn('addPage', newPage, page);
|
||||
// Let's assum that the data is comming from the server and the request takes 1s.
|
||||
setTimeout(function(){
|
||||
newPage.html('<div class="data">Data for page '+page+'</div>');
|
||||
}, 1000);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$('#bible').turn({acceleration: true,
|
||||
pages: 1000, // How many pages does this book have?
|
||||
elevation:50,
|
||||
gradients: !$.isTouch,
|
||||
when: {
|
||||
turning: function(e, page, view) {
|
||||
|
||||
// Gets the range of pages that the book needs right now
|
||||
var range = $(this).turn('range', page);
|
||||
|
||||
// Check if each page is within the book
|
||||
for (page = range[0]; page<=range[1]; page++)
|
||||
addPage(page, $(this));
|
||||
|
||||
},
|
||||
|
||||
turned: function(e, page) {
|
||||
$('#page-number').val(page);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#page-number').keydown(function(e){
|
||||
|
||||
if (e.keyCode==13)
|
||||
$('#bible').turn('page', $('#page-number').val());
|
||||
|
||||
});
|
||||
|
||||
$(window).bind('keydown', function(e){
|
||||
|
||||
if (e.keyCode==37)
|
||||
$('#bible').turn('previous');
|
||||
else if (e.keyCode==39)
|
||||
$('#bible').turn('next');
|
||||
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
BIN
demos/bible/loader.gif
Normal file
BIN
demos/bible/loader.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.5 KiB |
@ -2,13 +2,15 @@
|
||||
<html>
|
||||
<head>
|
||||
<script type="text/javascript" src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
|
||||
<script type="text/javascript" src="../../turn.min.js"></script>
|
||||
<script type="text/javascript" src="../../../turn.min.js"></script>
|
||||
|
||||
<style type="text/css">
|
||||
body{
|
||||
background:#ccc;
|
||||
}
|
||||
#magazine{
|
||||
width:1152px;
|
||||
height:752px;
|
||||
}
|
||||
#magazine .turn-page{
|
||||
background-color:#ccc;
|
||||
@ -29,15 +31,28 @@ body{
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
$('#magazine').turn({
|
||||
display: 'double',
|
||||
acceleration: true,
|
||||
gradients: !$.isTouch,
|
||||
elevation:50,
|
||||
when: {
|
||||
turned: function(e, page) {
|
||||
console.log('Current view: ', $(this).turn('view'));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#magazine').bind('turned', function(e, page) {
|
||||
|
||||
console.log('Current view: ', $('#magazine').turn('view'));
|
||||
|
||||
})
|
||||
|
||||
$('#magazine').turn({width: 1152, height: 752, acceleration: true, shadows: !$.isTouch});
|
||||
|
||||
|
||||
$(window).bind('keydown', function(e){
|
||||
|
||||
if (e.keyCode==37)
|
||||
$('#magazine').turn('previous');
|
||||
else if (e.keyCode==39)
|
||||
$('#magazine').turn('next');
|
||||
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
|
15
readme.md
15
readme.md
@ -1,17 +1,18 @@
|
||||
turn.js
|
||||
=========
|
||||
|
||||
### The awesome paper-like effect made for HTML5
|
||||
### Make a flip book with HTML5
|
||||
|
||||
Turn.js is a plugin for jQuery that adds a beautiful transition similar
|
||||
to real pages in a book or magazine. It works in all modern browsers including
|
||||
touch devices.
|
||||
Turn.js is a plugin for jQuery that adds a beautiful transition similar to real pages in a book or magazine. It works in all modern browsers including touch devices
|
||||
|
||||
|
||||
#### Example
|
||||
#### Usage
|
||||
|
||||
**CSS code:**
|
||||
<pre>
|
||||
#magazine{
|
||||
width: 800px;
|
||||
height: 400px;
|
||||
}
|
||||
#magazine .turn-page{
|
||||
background-color:#ccc;
|
||||
}
|
||||
@ -28,7 +29,7 @@ touch devices.
|
||||
|
||||
**JavaScript code:**
|
||||
<pre>
|
||||
$('#magazine').turn({width:800, height: 400, page: 1, shadows: true, acceleration: true});
|
||||
$('#magazine').turn({gradients: true, acceleration: true});
|
||||
</pre>
|
||||
|
||||
#### Requeriments
|
||||
|
80
turn.min.js
vendored
80
turn.min.js
vendored
@ -1,36 +1,46 @@
|
||||
/* turn.js | turnjs.com | (c) 2012 Emmanuel Garcia | MIT Licensed */
|
||||
(function(h){var D=Math.PI,B=D/2,G="WebKitCSSMatrix"in window&&"m11"in new WebKitCSSMatrix,u="Touch"in window,K={backward:["bl","tl"],forward:["br","tr"],all:["tl","bl","tr","br"]},L={page:1,shadows:!0,duration:600,acceleration:!0},M={back:null,corners:"forward",cornerSize:100,shadows:!0,duration:600,acceleration:!0},v=function(a,b,c,d){return{css:{position:"absolute",top:a,left:b,overflow:d||"hidden","z-index":c||"auto"}}},I=function(a,b,c,d,e){var i=1-e,g=i*i*i;mu3=e*e*e;return f(Math.round(g*a.x+
|
||||
3*e*i*i*b.x+3*e*e*i*c.x+mu3*d.x),Math.round(g*a.y+3*e*i*i*b.y+3*e*e*i*c.y+mu3*d.y))},f=function(a,b){return{x:a,y:b}},o=function(a,b,c){return G&&c?" translate3d("+a+"px,"+b+"px, 0px) ":" translate("+a+"px, "+b+"px) "},q=function(a){return" rotate("+a+"deg) "},j={init:function(a){var b,c,d=this.data();c=this.children();var e=c.length,a=h.extend({width:this.width(),height:this.height()},L,a);d.opt=a;d.pageObjs={};d.pages={};d.pageWrap={};d.pagePlace={};d.pageMv=[];d.totalPages=e;this.css({position:"relative"});
|
||||
G&&!u&&a.acceleration&&this.transform(o(0,0,!0));for(b=1;b<=e;b++)d.pagePlace[b]=b,d.pageObjs[b]=h(c[b-1]).addClass("turn-page p"+b),d.pageWrap[b]=h("<div/>",{"class":"turn-page-wrapper",css:{position:"absolute"}}).attr("page",b).appendTo(this).prepend(d.pageObjs[b]);for(b=1;b<=e;b++)c=b%2==0,d.pages[b]=d.pageWrap[b].css(c?{top:0,left:0}:{top:0,right:0}).children(":first").flip({next:c?b-1:b+1,page:b,turn:this,duration:a.duration,acceleration:a.acceleration,corners:c?"backward":"forward",back:c?d.pageObjs[b-
|
||||
1]:d.pageObjs[b+1],backShadow:a.shadows&&b!=2&&b!=e-1,frontShadow:a.shadows}).bind("pressed",j._pressed).bind("released",j._released).bind("start",j._start).bind("end",j._end).bind("flip",j._flip);j.page.call(this,a.page);d.done=!0;this.turn("size",a.width,a.height);return this},size:function(a,b){if(a&&b){var c=this.data(),d=a/2,e;this.css({width:a,height:b});for(e=1;e<=c.totalPages;e++)c.pageWrap[e].css({width:d,height:b}),c.pages[e]&&c.pages[e].css({width:d,height:b});this.turn("resize");return this}else return{width:this.width(),
|
||||
height:this.height()}},_visiblePages:function(a){a=a||this.data().page;return a%2==0?[a,a+1]:[a-1,a]},_removeMv:function(a){var b,c=this.data();for(b=0;b<c.pageMv.length;b++)c.pageMv[b]==a&&(c.pageMv.splice(b,1),b--)},_addMv:function(a){var b=this.data();j._removeMv.call(this,a);b.pageMv.push(a)},view:function(a){var b=this.data(),a=j._visiblePages.call(this,a);return[b.pages[a[0]]?a[0]:0,b.pages[a[1]]?a[1]:0]},stop:function(){var a=this.data(),b;a.pageMv=[];if(a.tpage)a.page=a.tpage,delete a.tpage;
|
||||
this.turn("update");for(b=1;b<=a.totalPages;b++){var c=a.pages[b].data().pageFlip.opt;a.pages[b].flip("hideThumbIndex");g._moveBackPage.call(a.pages[b],null);a.pagePlace[c.next]=c.next;if(c.force)c.next=c.page%2==0?c.page-1:c.page+1,a.pages[b].flip("setBackPage",a.pageObjs[c.next]),delete c.force}return this},page:function(a){var b=this.data(),c=this.turn("view");if(pg=b.pages[a])if(!b.done||(!c[0]||a>=c[0])&&(!c[1]||a<=c[1]))b.tpage=a,this.turn("stop"),this.trigger("turned",[a,pg]);else{b.tpage=
|
||||
a;this.turn("stop");var d,e,i=this.turn("view",a);c[1]&&a>c[1]?(d=c[1],e=i[0]):c[0]&&a<c[0]&&(d=c[0],e=i[1]);a=b.pages[d].data().pageFlip.opt;b.tpage=e;if(a.next!=e)a.next=e,b.pagePlace[a.next]=a.page,a.force=!0,g._moveBackPage.call(b.pages[d],!1),b.pages[d].flip("setBackPage",b.pageObjs[e]);b.pages[d].flip("turnPage")}else return c[0]||c[1];return this},next:function(){j._moveTo.call(this,1);return this},previous:function(){j._moveTo.call(this,-1);return this},_moveTo:function(a){var b,c=this.data(),
|
||||
d=j._visiblePages.call(this,c.tpage||c.page)[a==1?1:0],a=d+a,e=function(a){return c.pages[a].data().pageFlip};for(b=0;b<c.pageMv.length;b++)if(e(c.pageMv[b]).opt.force){this.turn("stop");break}if(c.pages[a]&&c.pages[a])if(c.pages[a].flip("moving")||c.pagePlace[d]==a)b=e(a).opt,j._removeMv.call(this,b.pageMv),j._addMv.call(this,d),c.tpage=a,b.pageMv=d,c.pages[a].flip("hideThumbIndex",!0),c.pages[d].trigger("flip"),this.turn("update");else{c.tpage=a;if(e(d).fwrapper.is(":visible"))b=e(d).opt,j._removeMv.call(this,
|
||||
b.pageMv),j._addPage.call(c.pages[d]);c.pages[d].flip("turnPage")}},_addPage:function(){var a=h(this).data().pageFlip.opt,b=a.turn,c=b.data();a.pageMv=a.page;j._addMv.call(b,a.pageMv);c.pagePlace[a.next]=a.page;b.turn("update")},_start:function(a){var b=h(this).data().pageFlip.opt;a.stopPropagation();j._addPage.call(this);b.turn.trigger("start",[b.page])},_end:function(a,b){a.stopPropagation();var c=h(this),d=c.data().pageFlip.opt,e=d.turn,i=e.data();if(b||i.tpage){if(i.tpage==d.next||i.pageMv.length==
|
||||
0)i.page=i.tpage||d.next,delete i.tpage,e.turn("page",i.page);if(d.force)d.next=d.page%2==0?d.page-1:d.page+1,c.flip("setBackPage",e.data().pageObjs[d.next]),delete d.force}else j._removeMv.call(e,d.pageMv),e.turn("update");e.trigger("end",[d.page,this])},resize:function(){var a=this.data();for(p=1;p<=a.totalPages;p++)a.pages[p].flip("resize",!0)},calculateZ:function(a){var b=this,c=this.data(),d,e,i,g=c.totalPages,h=a.length,f={pageZ:{},partZ:{},pageV:{}},s=function(a){a=b.turn("view",a);a[0]&&(f.pageV[a[0]]=
|
||||
!0);a[1]&&(f.pageV[a[1]]=!0)};i=this.turn("view");for(var j=i[0]||i[1],k=0;k<h;k++)d=a[k],e=c.pages[d].data().pageFlip.opt.next,i=c.pagePlace[d],s(d),s(e),d=c.pagePlace[e]==e?e:d,e=c.totalPages-Math.abs(j-d),f.pageZ[d]=e,f.partZ[i]=c.totalPages*2+Math.abs(j-d),d%2!=0&&c.pages[d-1]?(e-=h-1,f.pageZ[d-1]=e):d%2==0&&c.pages[d+1]&&(e-=d-1,f.pageZ[d+1]=e),e<g&&(g=e);for(var m in f.pageV)f.pageZ[m]||(f.pageZ[m]=--g);return f},update:function(){var a,b=this.data();if(b.pageMv.length){var c=this.turn("calculateZ",
|
||||
b.pageMv),d=this.turn("view",b.tpage),e;b.pagePlace[d[0]]==d[0]?e=d[0]:b.pagePlace[d[1]]==d[1]&&(e=d[1]);for(a=1;a<=b.totalPages;a++)b.pageWrap[a].css({display:c.pageV[a]?"":"none","z-index":c.pageZ[a]||0}),b.pages[a].flip("z",c.partZ[a]||null),c.pageV[a]&&b.pages[a].flip("resize"),b.tpage&&b.pages[a].flip("disable",a!=e)}else{d=this.turn("view");for(a=1;a<=b.totalPages;a++)(c=a==d[0]||a==d[1])?b.pageWrap[a].css({"z-index":b.totalPages,display:""}):a==d[0]-2||a==d[1]+2?b.pageWrap[a].css({"z-index":b.totalPages-
|
||||
1,display:""}):b.pageWrap[a].css({"z-index":0,display:"none"}),b.pages[a].flip("z",null),b.pages[a].flip("disable",!c)}},_pressed:function(){var a,b=h(this).data().pageFlip,c=b.opt.page,b=b.opt.turn.data().pages;for(a in b)a!=c&&b[a].flip("disable",!0);return this.time=(new Date).getTime()},_released:function(a,b){var c=h(this),d=(new Date).getTime()-this.time,e=c.data().pageFlip;if(d<200||b.x<0||b.x>h(this).width())a.stopPropagation(),e.opt.turn.data().tpage=e.opt.next,e.opt.turn.turn("update"),
|
||||
h(c).flip("turnPage")},_flip:function(){var a=h(this).data().pageFlip.opt;a.turn.trigger("turning",[a.next])},disable:function(a){var b=this.data(),a=typeof a=="undefined"?!0:a===!0;for(p=1;p<=b.totalPages;p++)b.pages[p].flip("disable",a)}},g={init:function(a){if(a.shadows)a.frontShadow=!0,a.backShadow=!0;g.setData.call(this,{opt:h.extend({},M,a)});g._addEvents.call(this);g._addPageWrapper.call(this);return this},setData:function(a){var b=this.data();b.pageFlip=h.extend(b.pageFlip||{},a)},_cAllowed:function(){return K[this.data().pageFlip.opt.corners]||
|
||||
this.data().pageFlip.opt.corners},_cornerActivated:function(a){var a=u?a.originalEvent.touches:[a],b;b=this.data().pageFlip;var c=b.parent.offset(),d=this.width(),e=this.height(),i=Math.max(0,a[0].pageX-c.left),a=Math.max(0,a[0].pageY-c.top),f=b.opt.cornerSize,c=g._cAllowed.call(this);if(!b.opt.back||i<=0||a<=0||i>=d||a>=e)b=!1;else if(i<=f&&a<=f)b="tl";else if(i>=d-f&&a<=f)b="tr";else if(i<=f&&a>=e-f)b="bl";else if(i>=d-f&&a>=e-f)b="br";else return!1;return jQuery.inArray(b,c)!=-1?{corner:b,x:i,
|
||||
y:a}:!1},_c:function(a,b){b=b||0;return{tl:f(b,b),tr:f(this.width()-b,b),bl:f(b,this.height()-b),br:f(this.width()-b,this.height()-b)}[a]},_c2:function(a){return{tl:f(this.width()*2,0),tr:f(-this.width(),0),bl:f(this.width()*2,this.height()),br:f(-this.width(),this.height())}[a]},z:function(a){var b=this.data().pageFlip;b.opt["z-index"]=a;b.fwrapper.css({"z-index":a||parseInt(b.parent.css("z-index"))||0})},resize:function(a){var b=this.data().pageFlip,c=this.width(),d=this.height(),e=Math.round(Math.sqrt(Math.pow(c,
|
||||
2)+Math.pow(d,2)));a&&(b.wrapper.css({width:e,height:e}),b.fwrapper.css({width:e,height:e}).children(":first-child").css({width:c,height:d}),b.fpage.css({width:d,height:c}),b.opt.frontShadow&&b.ashadow.css({width:d,height:c}),b.opt.backShadow&&b.bshadow.css({width:c,height:d}));b.parent.is(":visible")&&(b.fwrapper.css({top:b.parent.offset().top,left:b.parent.offset().left}),b.opt.turn&&b.fparent.css({top:-b.opt.turn.offset().top,left:-b.opt.turn.offset().left}));this.flip("z",b.opt["z-index"])},_addPageWrapper:function(){var a=
|
||||
this.data().pageFlip,b=this.parent();if(!a.wrapper){this.css("left");this.css("top");this.width();this.height();a.parent=b;a.fparent=a.opt.turn?a.opt.turn.data().fparent:h("#turn-fwrappers");if(!a.fparent){var c=h("<div/>").hide();c.data().flips=0;a.opt.turn?(c.css(v(-a.opt.turn.offset().top,-a.opt.turn.offset().left,"auto","visible").css).appendTo(a.opt.turn),a.opt.turn.data().fparent=c):c.css(v(0,0,"auto","visible").css).attr("id","turn-fwrappers").appendTo(h("body"));a.fparent=c}this.css({position:"absolute",
|
||||
top:0,left:0,bottom:"auto",right:"auto"});a.wrapper=h("<div/>",v(0,0,this.css("z-index"))).appendTo(b).prepend(this);a.fwrapper=h("<div/>",v(b.offset().top,b.offset().left)).hide().appendTo(a.fparent);a.fpage=h("<div/>",{css:{cursor:"default"}}).appendTo(h("<div/>",v(0,0,0,"visible")).appendTo(a.fwrapper));if(a.opt.frontShadow)a.ashadow=h("<div/>",v(0,0,1)).appendTo(a.fpage);if(a.opt.backShadow)a.bshadow=h("<div/>",v(0,0,1)).css({position:""}).appendTo(b);g.setData.call(this,a);g.resize.call(this,
|
||||
!0)}},_displayCorner:function(a){var b=this,c=0,d=0,e,i,h,j,E,s=f(0,0),H=f(0,0),k=f(0,0),m=this.width(),r=this.height(),l=this.data().pageFlip,w=l.opt.acceleration,v=l.wrapper.height(),u=g._c.call(this,a.corner),A=a.corner.substr(0,1)=="t",x=a.corner.substr(1,1)=="l",C=function(){var n=f(u.x?u.x-a.x:a.x,u.y?u.y-a.y:a.y),y=Math.atan2(n.y,n.x),t;d=B-y;c=d/D*180;t=f(x?m-n.x/2:a.x+n.x/2,n.y/2);var z=Math.max(0,Math.sin(d-Math.atan2(t.y,t.x))*Math.sqrt(Math.pow(t.x,2)+Math.pow(t.y,2)));k=f(z*Math.sin(d),
|
||||
z*Math.cos(d));if(d>B&&(k.x+=Math.abs(k.y*Math.tan(y)),k.y=0,Math.round(k.x*Math.tan(D-d))<r)){a.y=Math.sqrt(Math.pow(r,2)+2*t.x*n.x);if(A)a.y=r-a.y;return C()}e=Math.round(k.y/Math.tan(d)+k.x);x&&(e=m-e);n=x?e:m-e;y=n*Math.cos(d*2);t=n*Math.sin(d*2);n*=Math.sin(d);z=g._c2.call(b,a.corner);z=Math.sqrt(Math.pow(z.x-a.x,2)+Math.pow(z.y-a.y,2));H=f(Math.round(e+(x?-y:y)),Math.round(A?t:r-t));E=z<m?z/m:1;if(d>B){y=D-d;t=v-r/Math.sin(y);s=f(Math.round(t*Math.cos(y)),Math.round(t*Math.sin(y)));if(x)s.x=
|
||||
-s.x;if(A)s.y=-s.y}if(l.opt.frontShadow){j=n>100?(n-100)/n:0;i=f(n*Math.sin(B-d)/r*100,n*Math.cos(B-d)/m*100);if(A)i.y=100-i.y;if(x)i.x=100-i.x}if(l.opt.backShadow){h=f(n*Math.sin(d)/m*100,n*Math.cos(d)/r*100);if(!x)h.x=100-h.x;if(!A)h.y=100-h.y}k.x=Math.round(k.x);k.y=Math.round(k.y);return!0},F=function(a,c,d,e){var f=["0","auto"],g=(m-v)*d[0]/100,k=(r-v)*d[1]/100,d=d[0]+"% "+d[1]+"%",c={left:f[c[0]],top:f[c[1]],right:f[c[2]],bottom:f[c[3]]};b.css(c).transform(q(e)+o(a.x,a.y,w),d);l.fpage.parent().css(c);
|
||||
l.wrapper.transform(o(-a.x+g,-a.y+k,w)+q(-e),d);l.fwrapper.transform(o(-a.x+s.x+g,-a.y+s.y+k,w)+q(-e),d);l.fpage.parent().transform(q(e)+o(a.x+H.x-s.x,a.y+H.y-s.y,w),d);l.opt.frontShadow&&l.ashadow.css({"background-image":"-webkit-gradient(linear, "+(x?100:0)+"% "+(A?100:0)+"%, "+i.x+"% "+i.y+"%, color-stop("+j+",rgba(0,0,0,0)), color-stop("+((1-j)*0.8+j)+",rgba(0,0,0,"+0.2*E+")), to(rgba(255,255,255,"+0.2*E+")) )"});l.opt.backShadow&&l.bshadow.css({"background-image":"-webkit-gradient(linear, "+
|
||||
(x?0:100)+"% "+(A?0:100)+"%, "+h.x+"% "+h.y+"%, color-stop(0.8,rgba(0,0,0,0)), color-stop(1, rgba(0,0,0,"+0.2*E+")), to(rgba(0,0,0,0)) )"})};switch(a.corner){case "tl":a.x=Math.max(a.x,1);C();F(k,[1,0,0,1],[100,0],c);l.fpage.transform(o(-r,-m,w)+q(90-c*2),"100% 100%");l.opt.back.transform(q(90)+o(0,-r,w),"0% 0%");break;case "tr":a.x=Math.min(a.x,m-1);C();F(f(-k.x,k.y),[0,0,0,1],[0,0],-c);l.fpage.transform(o(0,-m,w)+q(-90+c*2),"0% 100%");l.opt.back.transform(q(270)+o(-m,0,w),"0% 0%");break;case "bl":a.x=
|
||||
Math.max(a.x,1);C();F(f(k.x,-k.y),[1,1,0,0],[100,100],-c);l.fpage.transform(o(-r,0,w)+q(-90+c*2),"100% 0%");l.opt.back.transform(q(270)+o(-m,0,w),"0% 0%");break;case "br":a.x=Math.min(a.x,m-1),C(),F(f(-k.x,-k.y),[0,1,1,0],[0,100],c),l.fpage.transform(q(90-c*2),"0% 0%"),l.opt.back.transform(q(90)+o(0,-r,w),"0% 0%")}l.p=a},setBackPage:function(a){var b=this.data().pageFlip;b.opt.back=a;b.backParent=a.parent()},_moveBackPage:function(a){var b=this.data().pageFlip;if(b.opt.back){var c=navigator.userAgent;
|
||||
if(c.indexOf("Chrome/17.")!=-1||c.indexOf("Chrome/18.")!=-1)c=b.opt.back.css("background-image"),b.opt.back.css({"background-image":""}).css({"background-image":c});if(a){if(!((b.ashadow?"1":"0")in b.fpage.children()))g.setData.call(this,{backParent:b.opt.back.parent()}),b.fpage.prepend(b.opt.back)}else b.backParent&&b.backParent.prepend(b.opt.back)}},_showThumbIndex:function(a,b){var c=this.data(),d=c.pageFlip;if(d.opt.back){if(b){var e=this,c=d.p||g._c.call(this,a.corner,1);this.animatef({from:[c.x,
|
||||
c.y],to:[a.x,a.y],duration:500,frame:function(b){g._displayCorner.call(e,{corner:a.corner,x:b[0],y:b[1]})}})}else g._displayCorner.call(this,a),c.effect&&!c.effect.turning&&this.animatef(!1);d.fwrapper.is(":visible")||(d.fparent.show().data().flips++,g._moveBackPage.call(this,!0),d.fwrapper.show(),d.opt.backShadow&&d.bshadow.show(),this.trigger("start"))}},hide:function(){var a=this.data().pageFlip;--a.fparent.data().flips==0&&a.fparent.hide();this.css({left:0,top:0,right:"auto",bottom:"auto"}).transform("",
|
||||
"0% 100%");a.wrapper.transform("","0% 100%");a.fwrapper.hide();a.opt.backShadow&&a.bshadow.hide();a.opt.back.transform("","0% 0%")},hideThumbIndex:function(a){var b=this.data().pageFlip;if(b.p){var c=this,d=b.p,e=function(){b.p=null;c.flip("hide");c.trigger("end",[!1])};if(a){var i,h,j=g._c.call(this,d.corner),a=d.corner.substr(0,1)=="t",o=Math.abs((d.y-j.y)/2);i=f(d.x,d.y+o);h=f(j.x,a?j.y+o:j.y-o);this.animatef({from:0,to:1,frame:function(a){a=I(d,i,h,j,a);a.corner=d.corner;g._displayCorner.call(c,
|
||||
a)},complete:e,duration:800,hiding:!0})}else this.animatef(!1),e()}},turnPage:function(){var a=this,b=this.data().pageFlip,c=b.cornerActivated?b.cornerActivated.corner:g._cAllowed.call(this)[0],d=b.p||g._c.call(this,c),e=g._c2.call(this,c);this.trigger("flip");this.animatef({from:0,to:1,frame:function(b){b=I(d,d,e,e,b);b.corner=c;g._showThumbIndex.call(a,b)},complete:function(){a.trigger("end",[!0])},duration:b.opt.duration,turning:!0});b.cornerActivated=null},moving:function(){return"effect"in this.data()},
|
||||
isTurning:function(){return this.flip("moving")&&this.data().effect.turning},_addEvents:function(){var a=this,b=u?{start:"touchstart",move:"touchmove",end:"touchend"}:{start:"mousedown",move:"mousemove",end:"mouseup"};h(document).bind(b.start,function(){return g._eventStart.apply(a,arguments)}).bind(b.move,function(){g._eventMove.apply(a,arguments)}).bind(b.end,function(){g._eventEnd.apply(a,arguments)})},_eventStart:function(a){var b=this.data().pageFlip;if(!b.disabled&&!this.flip("isTurning")&&
|
||||
(b.cornerActivated=g._cornerActivated.call(this,a),b.cornerActivated))return g._moveBackPage.call(this,!0),this.trigger("pressed",[b.p]),!1},_eventMove:function(a){var b=this.data(),c=b.pageFlip,a=u?a.originalEvent.touches:[a];c.disabled||(c.cornerActivated?(b=c.parent.offset(),g._showThumbIndex.call(this,{corner:c.cornerActivated.corner,x:a[0].pageX-b.left,y:a[0].pageY-b.top})):!b.effect&&!u&&((corner=g._cornerActivated.call(this,a[0]))?(a=g._c.call(this,corner.corner,c.opt.cornerSize/2),g._showThumbIndex.call(this,
|
||||
{corner:corner.corner,x:a.x,y:a.y},!0)):g.hideThumbIndex.call(this,!0)))},_eventEnd:function(){var a=this.data().pageFlip;if(!a.disabled&&a.cornerActivated){var b=jQuery.Event("released");this.trigger(b,[a.p]);b.isPropagationStopped()||g.hideThumbIndex.call(this,!0)}a.cornerActivated=null},disable:function(a){g.setData.call(this,{disabled:a})}},J=function(a,b,c){if(!c[0]||typeof c[0]=="object")return b.init.apply(a,c);else if(b[c[0]]&&c[0].toString().substr(0,1)!="_")return b[c[0]].apply(a,Array.prototype.slice.call(c,
|
||||
1));else throw c[0]+" is an invalid value";};h.extend(h.fn,{flip:function(a,b){return J(this,g,arguments)},turn:function(a){return J(this,j,arguments)},transform:function(a,b){b&&this.css({"transform-origin":b,"-moz-transform-origin":b,"-o-transform-origin":b,"-webkit-transform-origin":b,"-ms-transform-origin":b});return this.css({transform:a,"-moz-transform":a,"-o-transform":a,"-webkit-transform":a,"-ms-transform":a})},animatef:function(a){var b=this.data();b.effect&&clearInterval(b.effect.handle);
|
||||
if(a){if(!a.to.length)a.to=[a.to];if(!a.from.length)a.from=[a.from];if(!a.easing)a.easing=function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c};var c,d=[],e=a.to.length,f=this,g=a.fps||30,h=-g,j=function(){var c,j=[];h=Math.min(a.duration,h+g);for(c=0;c<e;c++)j.push(a.easing(1,h,a.from[c],d[c],a.duration));a.frame(e==1?j[0]:j);h==a.duration&&(clearInterval(b.effect.handle),delete b.effect,f.data(b),a.complete&&a.complete())};for(c=0;c<e;c++)d.push(a.to[c]-a.from[c]);b.effect=a;b.effect.handle=
|
||||
setInterval(j,g);this.data(b);j()}else delete b.effect}});h.has3d=G;h.isTouch=u})(jQuery);
|
||||
(function(i){var x,y="",G=Math.PI,E=G/2,w="Touch"in window,I=w?{start:"touchstart",move:"touchmove",end:"touchend"}:{start:"mousedown",move:"mousemove",end:"mouseup"},N={backward:["bl","tl"],forward:["br","tr"],all:["tl","bl","tr","br"]},O=["single","double"],P={page:1,gradients:!0,duration:600,acceleration:!0,display:"double",when:null},Q={folding:null,corners:"forward",cornerSize:100,gradients:!0,duration:600,acceleration:!0},J={"0":{top:0,left:0,right:"auto",bottom:"auto"},1:{top:0,right:0,left:"auto",
|
||||
bottom:"auto"}},m=function(a,b,c,d){return{css:{position:"absolute",top:a,left:b,overflow:d||"hidden","z-index":c||"auto"}}},K=function(a,b,c,d,e){var f=1-e,C=f*f*f,h=e*e*e;return j(Math.round(C*a.x+3*e*f*f*b.x+3*e*e*f*c.x+h*d.x),Math.round(C*a.y+3*e*f*f*b.y+3*e*e*f*c.y+h*d.y))},j=function(a,b){return{x:a,y:b}},r=function(a,b,c){return x&&c?" translate3d("+a+"px,"+b+"px, 0px) ":" translate("+a+"px, "+b+"px) "},s=function(a){return" rotate("+a+"deg) "},p=function(a,b){return Object.prototype.hasOwnProperty.call(b,
|
||||
a)},R=function(){for(var a=["Moz","Webkit","Khtml","O","ms"],b=document.body.style,c=a.length,d="";c--;)a[c]+"Transform"in b&&(d="-"+a[c].toLowerCase()+"-");return d},L=function(a,b,c,d,e){var f,C=[];if("-webkit-"==y){for(f=0;f<e;f++)C.push("color-stop("+d[f][0]+", "+d[f][1]+")");a.css({"background-image":"-webkit-gradient(linear, "+b.x+"% "+b.y+"%, "+c.x+"% "+c.y+"%, "+C.join(",")+" )"})}else{var h=c.x-b.x;f=c.y-b.y;var i=Math.atan2(f,h),g=i-Math.PI/2,g=Math.abs(100*Math.sin(g))+Math.abs(100*Math.cos(g)),
|
||||
h=Math.sqrt(f*f+h*h),c=j(c.x<b.x?100:0,c.y<b.y?100:0),n=Math.tan(i);f=-1/n;n=(f*c.x-c.y-n*b.x+b.y)/(f-n);c=f*n-f*c.x+c.y;b=1*Math.sqrt(Math.pow(n-b.x,2)+Math.pow(c-b.y,2));for(f=0;f<e;f++)C.push(" "+d[f][1]+" "+Math.round(100*(b+h*d[f][0])/g)+"%");a.css({"background-image":y+"linear-gradient("+-i+"rad,"+C.join(",")+")"})}},g={init:function(a){void 0===x&&(x="WebKitCSSMatrix"in window||"MozPerspective"in document.body.style,y=R());var b,c=this.data(),d=this.children(),a=i.extend({width:this.width(),
|
||||
height:this.height()},P,a);c.opts=a;c.pageObjs={};c.pages={};c.pageWrap={};c.pagePlace={};c.pageMv=[];c.totalPages=a.pages||0;if(a.when)for(b in a.when)p(b,a.when)&&this.bind(b,a.when[b]);this.css({position:"relative",width:a.width,height:a.height});this.turn("display",a.display);x&&!w&&a.acceleration&&this.transform(r(0,0,!0));for(b=0;b<d.length;b++)this.turn("addPage",d[b],b+1);this.turn("page",a.page);i(this).bind(I.start,function(a){for(var b in c.pages)if(p(b,c.pages)&&!1===h._eventStart.call(c.pages[b],
|
||||
a))return!1});i(document).bind(I.move,function(a){for(var b in c.pages)p(b,c.pages)&&h._eventMove.call(c.pages[b],a)}).bind(I.end,function(a){for(var b in c.pages)p(b,c.pages)&&h._eventEnd.call(c.pages[b],a)});c.done=!0;return this},addPage:function(a,b){var c=!1,d=this.data(),e=d.totalPages+1;if(b)if(b==e)b=e,c=!0;else{if(b>e)throw Error('It is impossible to add the page "'+b+'", the maximum value is: "'+e+'"');}else b=e,c=!0;1<=b&&b<=e&&(d.done&&this.turn("stop"),g._movePages.call(this,b,1),c&&
|
||||
(d.totalPages=e),d.pageObjs[b]=i(a).addClass("turn-page p"+b),g._addPage.call(this,b),d.done&&this.turn("update"),g._removeFromDOM.call(this));return this},_addPage:function(a){var b=this.data(),c=b.pageObjs[a];if(c)if(g._necessPage.call(this,a)){if(!b.pageWrap[a]){var d="double"==b.display?this.width()/2:this.width(),e=this.height();c.css({width:d,height:e});b.pagePlace[a]=a;b.pageWrap[a]=i("<div/>",{"class":"turn-page-wrapper",page:a,css:{position:"absolute",overflow:"hidden",width:d,height:e}}).css(J["double"==
|
||||
b.display?a%2:0]);this.append(b.pageWrap[a]);b.pageWrap[a].prepend(b.pageObjs[a])}(!a||1==g._setPageLoc.call(this,a))&&g._makeFlip.call(this,a)}else b.pagePlace[a]=0,b.pageObjs[a]&&b.pageObjs[a].remove()},hasPage:function(a){return!!this.data().pageObjs[a]},_makeFlip:function(a){var b=this.data();if(!b.pages[a]&&b.pagePlace[a]==a){var c="single"==b.display,d=a%2;b.pages[a]=b.pageObjs[a].css({width:c?this.width():this.width()/2,height:this.height()}).flip({page:a,next:d||c?a+1:a-1,turn:this,duration:b.opts.duration,
|
||||
acceleration:b.opts.acceleration,corners:c?"all":d?"forward":"backward",backGradient:b.opts.gradients,frontGradient:b.opts.gradients}).flip("disable",b.disabled).bind("pressed",g._pressed).bind("released",g._released).bind("start",g._start).bind("end",g._end).bind("flip",g._flip)}return b.pages[a]},_makeRange:function(){var a;this.data();var b=this.turn("range");for(a=b[0];a<=b[1];a++)g._addPage.call(this,a)},range:function(a){var b,c,d=this.data(),a=a||d.tpage||d.page,e=g._view.call(this,a);if(1>
|
||||
a||a>d.totalPages)throw Error('"'+a+'" is not a page for range');e[1]=e[1]||e[0];1<=e[0]&&e[1]<=d.totalPages?(a=Math.floor(2),d.totalPages-e[1]>e[0]?(b=Math.min(e[0]-1,a),c=2*a-b):(c=Math.min(d.totalPages-e[1],a),b=2*a-c)):c=b=5;return[Math.max(1,e[0]-b),Math.min(d.totalPages,e[1]+c)]},_necessPage:function(a){if(0===a)return!0;var b=this.turn("range");return a>=b[0]&&a<=b[1]},_removeFromDOM:function(){var a,b=this.data();for(a in b.pageWrap)p(a,b.pageWrap)&&!g._necessPage.call(this,a)&&g._removePageFromDOM.call(this,
|
||||
a)},_removePageFromDOM:function(a){var b=this.data();if(b.pages[a]){var c=b.pages[a].data();c.f&&c.f.fwrapper&&c.f.fwrapper.remove();b.pages[a].remove();delete b.pages[a]}b.pageObjs[a]&&b.pageObjs[a].remove();b.pageWrap[a]&&(b.pageWrap[a].remove(),delete b.pageWrap[a]);delete b.pagePlace[a]},removePage:function(a){var b=this.data();b.pageObjs[a]&&(this.turn("stop"),g._removePageFromDOM.call(this,a),delete b.pageObjs[a],g._movePages.call(this,a,-1),b.totalPages-=1,g._makeRange.call(this),b.page>b.totalPages&&
|
||||
this.turn("page",b.totalPages));return this},_movePages:function(a,b){var c,d=this.data(),e="single"==d.display,f=function(a){var c=a+b,f=c%2;d.pageObjs[a]&&(d.pageObjs[c]=d.pageObjs[a].removeClass("page"+a).addClass("page"+c));d.pagePlace[a]&&d.pageWrap[a]&&(d.pagePlace[c]=c,d.pageWrap[c]=d.pageWrap[a].css(J[e?0:f]).attr("page",c),d.pages[a]&&(d.pages[c]=d.pages[a].flip("options",{page:c,next:e||f?c+1:c-1,corners:e?"all":f?"forward":"backward"})),b&&(delete d.pages[a],delete d.pagePlace[a],delete d.pageObjs[a],
|
||||
delete d.pageWrap[a],delete d.pageObjs[a]))};if(0<b)for(c=d.totalPages;c>=a;c--)f(c);else for(c=a;c<=d.totalPages;c++)f(c)},display:function(a){var b=this.data(),c=b.display;if(a){if(-1==i.inArray(a,O))throw Error('"'+a+'" is not a value for display');"single"==a?b.pageObjs[0]||(this.turn("stop").css({overflow:"hidden"}),b.pageObjs[0]=i("<div />",{"class":"turn-page p-temporal"}).css({width:this.width(),height:this.height()}).appendTo(this)):b.pageObjs[0]&&(this.turn("stop").css({overflow:""}),b.pageObjs[0].remove(),
|
||||
delete b.pageObjs[0]);b.display=a;c&&(a=this.turn("size"),g._movePages.call(this,1,0),this.turn("size",a.width,a.height).turn("update"));return this}return c},animating:function(){return 0<this.data().pageMv.length},disable:function(a){var b,c=this.data(),d=this.turn("view"),a="undefined"==typeof a||!0===a;c.disabled=a;for(b in c.pages)p(b,c.pages)&&c.pages[b].flip("disable",a?i.inArray(b,d):!1);return this},size:function(a,b){if(a&&b){var c=this.data(),d="double"==c.display?a/2:a,e;this.css({width:a,
|
||||
height:b});c.pageObjs[0]&&c.pageObjs[0].css({width:d,height:b});for(e in c.pageWrap)p(e,c.pageWrap)&&(c.pageWrap[e].css({width:d,height:b}),c.pages[e]&&c.pages[e].css({width:d,height:b}));this.turn("resize");return this}return{width:this.width(),height:this.height()}},resize:function(){var a,b=this.data();b.pages[0]&&(b.pageWrap[0].css({left:-this.width()}),b.pages[0].flip("resize",!0));for(a=1;a<=b.totalPages;a++)b.pages[a]&&b.pages[a].flip("resize",!0)},_removeMv:function(a){var b,c=this.data();
|
||||
for(b=0;b<c.pageMv.length;b++)if(c.pageMv[b]==a)return c.pageMv.splice(b,1),!0;return!1},_addMv:function(a){var b=this.data();g._removeMv.call(this,a);b.pageMv.push(a)},_view:function(a){var b=this.data(),a=a||b.page;return"double"==b.display?a%2?[a-1,a]:[a,a+1]:[a]},view:function(a){var b=this.data(),a=g._view.call(this,a);return"double"==b.display?[0<a[0]?a[0]:0,a[1]<=b.totalPages?a[1]:0]:[0<a[0]&&a[0]<=b.totalPages?a[0]:0]},stop:function(){var a,b,c=this.data(),d=c.pageMv;c.pageMv=[];c.tpage&&
|
||||
(c.page=c.tpage,delete c.tpage);for(a in d)p(a,d)&&(b=c.pages[d[a]].data().f.opts,h._moveFoldingPage.call(c.pages[d[a]],null),c.pages[d[a]].flip("hideFoldedPage"),c.pagePlace[b.next]=b.next,b.force&&(b.next=0===b.page%2?b.page-1:b.page+1,delete b.force));this.turn("update");return this},pages:function(a){var b=this.data();if(a){if(a<b.totalPages){for(var c=a+1;c<=b.totalPages;c++)this.turn("removePage",c);this.turn("page")>a&&this.turn("page",a)}b.totalPages=a;return this}return b.totalPages},_fitPage:function(a,
|
||||
b){var c=this.data(),d=this.turn("view",a);c.page!=a&&(this.trigger("turning",[a,d]),-1!=i.inArray(1,d)&&this.trigger("first"),-1!=i.inArray(c.totalPages,d)&&this.trigger("last"));c.pageObjs[a]&&(c.tpage=a,this.turn("stop",b),g._removeFromDOM.call(this),g._makeRange.call(this),this.trigger("turned",[a,d]))},_turnPage:function(a){var b,c,d=this.data(),e=this.turn("view"),f=this.turn("view",a);d.page!=a&&(this.trigger("turning",[a,f]),-1!=i.inArray(1,f)&&this.trigger("first"),-1!=i.inArray(d.totalPages,
|
||||
f)&&this.trigger("last"));d.pageObjs[a]&&(d.tpage=a,this.turn("stop"),g._makeRange.call(this),"single"==d.display?(b=e[0],c=f[0]):e[1]&&a>e[1]?(b=e[1],c=f[0]):e[0]&&a<e[0]&&(b=e[0],c=f[1]),d.pages[b]&&(a=d.pages[b].data().f.opts,d.tpage=c,a.next!=c&&(a.next=c,d.pagePlace[c]=a.page,a.force=!0),"single"==d.display?d.pages[b].flip("turnPage",f[0]>e[0]?"br":"bl"):d.pages[b].flip("turnPage")))},page:function(a){var a=parseInt(a,10),b=this.data();return 0<a&&a<=b.totalPages?(!b.done||-1!=i.inArray(a,this.turn("view"))?
|
||||
g._fitPage.call(this,a):g._turnPage.call(this,a),this):b.page},next:function(){var a=this.data();return this.turn("page",g._view.call(this,a.tpage||a.page).pop()+1)},previous:function(){var a=this.data();return this.turn("page",g._view.call(this,a.tpage||a.page).shift()-1)},_addMotionPage:function(){var a=i(this).data().f.opts,b=a.turn,c=b.data();a.pageMv=a.page;g._addMv.call(b,a.pageMv);c.pagePlace[a.next]=a.page;b.turn("update")},_start:function(a,b,c){var d=b.turn.data(),e=i.Event("start");a.stopPropagation();
|
||||
b.turn.trigger(e,[b,c]);e.isDefaultPrevented()?a.preventDefault():("single"==d.display&&(c="l"==c.charAt(1),1==b.page&&c||b.page==d.pages&&!c?a.preventDefault():c?(b.next=b.next<b.page?b.next:b.page-1,b.force=!0):b.next=b.next>b.page?b.next:b.page+1),g._addMotionPage.call(this))},_end:function(a,b){var c=i(this).data().f.opts,d=c.turn,e=d.data();a.stopPropagation();if(b||e.tpage){if(e.tpage==c.next||e.tpage==c.page)delete e.tpage,g._fitPage.call(d,e.tpage||c.next,!0)}else g._removeMv.call(d,c.pageMv),
|
||||
d.turn("update")},_pressed:function(){var a,b=i(this).data().f,c=b.opts.turn.data().pages;for(a in c)a!=b.opts.page&&c[a].flip("disable",!0);return b.time=(new Date).getTime()},_released:function(a,b){var c=i(this),d=c.data().f;a.stopPropagation();if(200>(new Date).getTime()-d.time||0>b.x||b.x>i(this).width())a.preventDefault(),d.opts.turn.data().tpage=d.opts.next,d.opts.turn.turn("update"),i(c).flip("turnPage")},_flip:function(){var a=i(this).data().f.opts;a.turn.trigger("turn",[a.next])},calculateZ:function(a){var b,
|
||||
c,d,e,f=this,h=this.data();b=this.turn("view");var i=b[0]||b[1],g={pageZ:{},partZ:{},pageV:{}},j=function(a){a=f.turn("view",a);a[0]&&(g.pageV[a[0]]=!0);a[1]&&(g.pageV[a[1]]=!0)};for(b=0;b<a.length;b++)c=a[b],d=h.pages[c].data().f.opts.next,e=h.pagePlace[c],j(c),j(d),c=h.pagePlace[d]==d?d:c,g.pageZ[c]=h.totalPages-Math.abs(i-c),g.partZ[e]=2*h.totalPages+Math.abs(i-c);return g},update:function(){var a,b=this.data();if(b.pageMv.length&&0!==b.pageMv[0]){var c=this.turn("calculateZ",b.pageMv);this.turn("view",
|
||||
b.tpage);for(a in b.pageWrap)p(a,b.pageWrap)&&(b.pageWrap[a].css({display:c.pageV[a]?"":"none","z-index":c.pageZ[a]||0}),b.pages[a]&&(b.pages[a].flip("z",c.partZ[a]||null),c.pageV[a]&&b.pages[a].flip("resize"),b.tpage&&b.pages[a].flip("disable",!0)))}else for(a in b.pageWrap)p(a,b.pageWrap)&&(c=g._setPageLoc.call(this,a),b.pages[a]&&b.pages[a].flip("disable",b.disabled||1!=c).flip("z",null))},_setPageLoc:function(a){var b=this.data(),c=this.turn("view");if(a==c[0]||a==c[1])return b.pageWrap[a].css({"z-index":b.totalPages,
|
||||
display:""}),1;if("single"==b.display&&a==c[0]+1||"double"==b.display&&a==c[0]-2||a==c[1]+2)return b.pageWrap[a].css({"z-index":b.totalPages-1,display:""}),2;b.pageWrap[a].css({"z-index":0,display:"none"});return 0}},h={init:function(a){a.gradients&&(a.frontGradient=!0,a.backGradient=!0);this.data({f:{}});this.flip("options",a);h._addPageWrapper.call(this);return this},setData:function(a){var b=this.data();b.f=i.extend(b.f,a);return this},options:function(a){var b=this.data().f;return a?(h.setData.call(this,
|
||||
{opts:i.extend({},b.opts||Q,a)}),this):b.opts},z:function(a){var b=this.data().f;b.opts["z-index"]=a;b.fwrapper.css({"z-index":a||parseInt(b.parent.css("z-index"),10)||0});return this},_cAllowed:function(){return N[this.data().f.opts.corners]||this.data().f.opts.corners},_cornerActivated:function(a){var a=w?a.originalEvent.touches:[a],b=this.data().f,c=b.parent.offset(),d=this.width(),e=this.height(),a={x:Math.max(0,a[0].pageX-c.left),y:Math.max(0,a[0].pageY-c.top)},b=b.opts.cornerSize,c=h._cAllowed.call(this);
|
||||
if(0>=a.x||0>=a.y||a.x>=d||a.y>=e)return!1;if(a.y<b)a.corner="t";else if(a.y>=e-b)a.corner="b";else return!1;if(a.x<=b)a.corner+="l";else if(a.x>=d-b)a.corner+="r";else return!1;return-1==i.inArray(a.corner,c)?!1:a},_c:function(a,b){b=b||0;return{tl:j(b,b),tr:j(this.width()-b,b),bl:j(b,this.height()-b),br:j(this.width()-b,this.height()-b)}[a]},_c2:function(a){return{tl:j(2*this.width(),0),tr:j(-this.width(),0),bl:j(2*this.width(),this.height()),br:j(-this.width(),this.height())}[a]},_foldingPage:function(){var a=
|
||||
this.data().f.opts;if(a.folding)return a.folding;if(a.turn){var b=a.turn.data();return"single"==b.display?b.pageObjs[a.next]?b.pageObjs[0]:null:b.pageObjs[a.next]}},_backGradient:function(){var a=this.data().f,b=a.opts.turn;if((b=a.opts.backGradient&&(!b||"single"==b.data().display||2!=a.opts.page&&a.opts.page!=b.data().totalPages-1))&&!a.bshadow)a.bshadow=i("<div/>",m(0,0,1)).css({position:"",width:this.width(),height:this.height()}).appendTo(a.parent);return b},resize:function(a){var b=this.data().f,
|
||||
c=this.width(),d=this.height(),e=Math.round(Math.sqrt(Math.pow(c,2)+Math.pow(d,2)));a&&(b.wrapper.css({width:e,height:e}),b.fwrapper.css({width:e,height:e}).children(":first-child").css({width:c,height:d}),b.fpage.css({width:d,height:c}),b.opts.frontGradient&&b.ashadow.css({width:d,height:c}),h._backGradient.call(this)&&b.bshadow.css({width:c,height:d}));b.parent.is(":visible")&&(b.fwrapper.css({top:b.parent.offset().top,left:b.parent.offset().left}),b.opts.turn&&b.fparent.css({top:-b.opts.turn.offset().top,
|
||||
left:-b.opts.turn.offset().left}));this.flip("z",b.opts["z-index"])},_addPageWrapper:function(){var a=this.data().f,b=this.parent();if(!a.wrapper){this.css("left");this.css("top");var c=this.width(),d=this.height();Math.round(Math.sqrt(Math.pow(c,2)+Math.pow(d,2)));a.parent=b;a.fparent=a.opts.turn?a.opts.turn.data().fparent:i("#turn-fwrappers");a.fparent||(c=i("<div/>",{css:{"pointer-events":"none"}}).hide(),c.data().flips=0,a.opts.turn?(c.css(m(-a.opts.turn.offset().top,-a.opts.turn.offset().left,
|
||||
"auto","visible").css).appendTo(a.opts.turn),a.opts.turn.data().fparent=c):c.css(m(0,0,"auto","visible").css).attr("id","turn-fwrappers").appendTo(i("body")),a.fparent=c);this.css({position:"absolute",top:0,left:0,bottom:"auto",right:"auto"});a.wrapper=i("<div/>",m(0,0,this.css("z-index"))).appendTo(b).prepend(this);a.fwrapper=i("<div/>",m(b.offset().top,b.offset().left)).hide().appendTo(a.fparent);a.fpage=i("<div/>",{css:{cursor:"default"}}).appendTo(i("<div/>",m(0,0,0,"visible")).appendTo(a.fwrapper));
|
||||
a.opts.frontGradient&&(a.ashadow=i("<div/>",m(0,0,1)).appendTo(a.fpage));h.setData.call(this,a);h.resize.call(this,!0)}},_fold:function(a){var b=this,c=0,d=0,e,f,i,g,u,H,n=j(0,0),p=j(0,0),k=j(0,0),q=this.width(),t=this.height(),m=h._foldingPage.call(this);Math.tan(d);var o=this.data().f,v=o.opts.acceleration,y=o.wrapper.height(),w=h._c.call(this,a.corner),D="t"==a.corner.substr(0,1),A="l"==a.corner.substr(1,1),F=function(){var l=j(w.x?w.x-a.x:a.x,w.y?w.y-a.y:a.y),B=Math.atan2(l.y,l.x),z;d=E-B;c=180*
|
||||
(d/G);z=j(A?q-l.x/2:a.x+l.x/2,l.y/2);var m=d-Math.atan2(z.y,z.x),m=Math.max(0,Math.sin(m)*Math.sqrt(Math.pow(z.x,2)+Math.pow(z.y,2)));k=j(m*Math.sin(d),m*Math.cos(d));if(d>E&&(k.x+=Math.abs(k.y*Math.tan(B)),k.y=0,Math.round(k.x*Math.tan(G-d))<t))return a.y=Math.sqrt(Math.pow(t,2)+2*z.x*l.x),D&&(a.y=t-a.y),F();d>E&&(l=G-d,B=y-t/Math.sin(l),n=j(Math.round(B*Math.cos(l)),Math.round(B*Math.sin(l))),A&&(n.x=-n.x),D&&(n.y=-n.y));e=Math.round(k.y/Math.tan(d)+k.x);l=q-e;B=l*Math.cos(2*d);z=l*Math.sin(2*d);
|
||||
p=j(Math.round(A?l-B:e+B),Math.round(D?z:t-z));u=l*Math.sin(d);l=h._c2.call(b,a.corner);l=Math.sqrt(Math.pow(l.x-a.x,2)+Math.pow(l.y-a.y,2));H=l<q?l/q:1;o.opts.frontGradient&&(g=100<u?(u-100)/u:0,f=j(100*(u*Math.sin(E-d)/t),100*(u*Math.cos(E-d)/q)),D&&(f.y=100-f.y),A&&(f.x=100-f.x));h._backGradient.call(b)&&(i=j(100*(u*Math.sin(d)/q),100*(u*Math.cos(d)/t)),A||(i.x=100-i.x),D||(i.y=100-i.y));k.x=Math.round(k.x);k.y=Math.round(k.y);return!0},x=function(a,c,d,e){var k=["0","auto"],m=(q-y)*d[0]/100,u=
|
||||
(t-y)*d[1]/100,c={left:k[c[0]],top:k[c[1]],right:k[c[2]],bottom:k[c[3]]},k=90!=e&&-90!=e?A?-1:1:0,d=d[0]+"% "+d[1]+"%";b.css(c).transform(s(e)+r(a.x+k,a.y,v),d);o.fpage.parent().css(c);o.wrapper.transform(r(-a.x+m-k,-a.y+u,v)+s(-e),d);o.fwrapper.transform(r(-a.x+n.x+m,-a.y+n.y+u,v)+s(-e),d);o.fpage.parent().transform(s(e)+r(a.x+p.x-n.x,a.y+p.y-n.y,v),d);o.opts.frontGradient&&L(o.ashadow,j(A?100:0,D?100:0),j(f.x,f.y),[[g,"rgba(0,0,0,0)"],[0.8*(1-g)+g,"rgba(0,0,0,"+0.2*H+")"],[1,"rgba(255,255,255,"+
|
||||
0.2*H+")"]],3);h._backGradient.call(b)&&L(o.bshadow,j(A?0:100,D?0:100),j(i.x,i.y),[[0.8,"rgba(0,0,0,0)"],[1,"rgba(0,0,0,"+0.3*H+")"],[1,"rgba(0,0,0,0)"]],3)};switch(a.corner){case "tl":a.x=Math.max(a.x,1);F();x(k,[1,0,0,1],[100,0],c);o.fpage.transform(r(-t,-q,v)+s(90-2*c),"100% 100%");m.transform(s(90)+r(0,-t,v),"0% 0%");break;case "tr":a.x=Math.min(a.x,q-1);F();x(j(-k.x,k.y),[0,0,0,1],[0,0],-c);o.fpage.transform(r(0,-q,v)+s(-90+2*c),"0% 100%");m.transform(s(270)+r(-q,0,v),"0% 0%");break;case "bl":a.x=
|
||||
Math.max(a.x,1);F();x(j(k.x,-k.y),[1,1,0,0],[100,100],-c);o.fpage.transform(r(-t,0,v)+s(-90+2*c),"100% 0%");m.transform(s(270)+r(-q,0,v),"0% 0%");break;case "br":a.x=Math.min(a.x,q-1),F(),x(j(-k.x,-k.y),[0,1,1,0],[0,100],c),o.fpage.transform(s(90-2*c),"0% 0%"),m.transform(s(90)+r(0,-t,v),"0% 0%")}o.point=a},_moveFoldingPage:function(a){var b=this.data().f,c=h._foldingPage.call(this);if(c)if(a){if(!b.fpage.children()[b.ashadow?"1":"0"])h.setData.call(this,{backParent:c.parent()}),b.fpage.prepend(c)}else b.backParent&&
|
||||
b.backParent.prepend(c)},_showFoldedPage:function(a,b){var c=h._foldingPage.call(this),d=this.data(),e=d.f;if(!e.point||e.point.corner!=a.corner){var f=i.Event("start");this.trigger(f,[e.opts,a.corner]);if(f.isDefaultPrevented())return!1}if(c){if(b){var g=this,c=e.point&&e.point.corner==a.corner?e.point:h._c.call(this,a.corner,1);this.animatef({from:[c.x,c.y],to:[a.x,a.y],duration:500,frame:function(b){a.x=Math.round(b[0]);a.y=Math.round(b[1]);h._fold.call(g,a)}})}else h._fold.call(this,a),d.effect&&
|
||||
!d.effect.turning&&this.animatef(!1);e.fwrapper.is(":visible")||(e.fparent.show().data().flips++,h._moveFoldingPage.call(this,!0),e.fwrapper.show(),e.bshadow&&e.bshadow.show());return!0}return!1},hide:function(){var a=this.data().f,b=h._foldingPage.call(this);0===--a.fparent.data().flips&&a.fparent.hide();this.css({left:0,top:0,right:"auto",bottom:"auto"}).transform("","0% 100%");a.wrapper.transform("","0% 100%");a.fwrapper.hide();a.bshadow&&a.bshadow.hide();b.transform("","0% 0%");return this},hideFoldedPage:function(a){var b=
|
||||
this.data().f;if(b.point){var c=this,d=b.point,e=function(){b.point=null;c.flip("hide");c.trigger("end",[!1])};if(a){var f=h._c.call(this,d.corner),a="t"==d.corner.substr(0,1)?Math.min(0,d.y-f.y)/2:Math.max(0,d.y-f.y)/2,i=j(d.x,d.y+a),g=j(f.x,f.y-a);this.animatef({from:0,to:1,frame:function(a){a=K(d,i,g,f,a);d.x=a.x;d.y=a.y;h._fold.call(c,d)},complete:e,duration:800,hiding:!0})}else this.animatef(!1),e()}},turnPage:function(a){var b=this,c=this.data().f,a={corner:c.corner?c.corner.corner:a||h._cAllowed.call(this)[0]},
|
||||
d=c.point||h._c.call(this,a.corner,c.opts.turn?c.opts.turn.data().opts.elevation:0),e=h._c2.call(this,a.corner);this.trigger("flip").animatef({from:0,to:1,frame:function(c){c=K(d,d,e,e,c);a.x=c.x;a.y=c.y;h._showFoldedPage.call(b,a)},complete:function(){b.trigger("end",[!0])},duration:c.opts.duration,turning:!0});c.corner=null},moving:function(){return"effect"in this.data()},isTurning:function(){return this.flip("moving")&&this.data().effect.turning},_eventStart:function(a){var b=this.data().f;if(!b.disabled&&
|
||||
!this.flip("isTurning")){b.corner=h._cornerActivated.call(this,a);if(b.corner&&h._foldingPage.call(this,b.corner))return h._moveFoldingPage.call(this,!0),this.trigger("pressed",[b.point]),!1;b.corner=null}},_eventMove:function(a){var b=this.data().f;if(!b.disabled)if(a=w?a.originalEvent.touches:[a],b.corner){var c=b.parent.offset();b.corner.x=a[0].pageX-c.left;b.corner.y=a[0].pageY-c.top;h._showFoldedPage.call(this,b.corner)}else!this.data().effect&&this.is(":visible")&&((a=h._cornerActivated.call(this,
|
||||
a[0]))?(b=h._c.call(this,a.corner,b.opts.cornerSize/2),a.x=b.x,a.y=b.y,h._showFoldedPage.call(this,a,!0)):h.hideFoldedPage.call(this,!0))},_eventEnd:function(){var a=this.data().f;if(!a.disabled&&a.point){var b=i.Event("released");this.trigger(b,[a.point]);b.isDefaultPrevented()||h.hideFoldedPage.call(this,!0)}a.corner=null},disable:function(a){h.setData.call(this,{disabled:a});return this}},M=function(a,b,c){if(!c[0]||"object"==typeof c[0])return b.init.apply(a,c);if(b[c[0]]&&"_"!=c[0].toString().substr(0,
|
||||
1))return b[c[0]].apply(a,Array.prototype.slice.call(c,1));throw c[0]+" is an invalid value";};i.extend(i.fn,{flip:function(a,b){return M(this,h,arguments)},turn:function(a){return M(this,g,arguments)},transform:function(a,b){var c={};b&&(c[y+"transform-origin"]=b);c[y+"transform"]=a;return this.css(c)},animatef:function(a){var b=this.data();b.effect&&clearInterval(b.effect.handle);if(a){a.to.length||(a.to=[a.to]);a.from.length||(a.from=[a.from]);a.easing||(a.easing=function(a,b,c,d,e){return d*Math.sqrt(1-
|
||||
(b=b/e-1)*b)+c});var c,d=[],e=a.to.length,f=this,i=a.fps||30,h=-i,g=function(){var c,g=[];h=Math.min(a.duration,h+i);for(c=0;c<e;c++)g.push(a.easing(1,h,a.from[c],d[c],a.duration));a.frame(1==e?g[0]:g);h==a.duration&&(clearInterval(b.effect.handle),delete b.effect,f.data(b),a.complete&&a.complete())};for(c=0;c<e;c++)d.push(a.to[c]-a.from[c]);b.effect=a;b.effect.handle=setInterval(g,i);this.data(b);g()}else delete b.effect}});i.isTouch=w})(jQuery);
|
||||
|
Loading…
x
Reference in New Issue
Block a user