If you have read the website designed by Google <20 tips on browsers and networks>, you will surely enjoy the page flip simulation.
Many technical blog said the site source code released: http://code.google.com/p/20thingsilearned/
However, the download link cannot be found.
After searching, I finally found it on html5rocks.
After downloading and testing, I was somewhat disappointed. The function is much weaker than 20 thingsilearned.
However, the source code is very concise and neat, with detailed remarks, and then with html5rocks tutorial, you will soon be able to understand the source code, you can customize different styles on your own.
However, a small Bug was found during the use process.
So I simply changed the source code and put it on for trial and modification.
: Https://github.com/jiancm2011/20Things_PageFlip_Example
Demo: http://maplejan.com/codelaboratory/code/html5/20Things_PageFlip_Example
This modification mainly solves the problem of incorrect variable page Calculation During page turning.
A new variable "ction" is added to determine the direction of the mouse turning page.
[Javascript]
Var direction = ""; // Record the mouse position)
Var direction = ""; // Record the mouse position)
The following two functions are modified.
[Javascript]
<Span style = "white-space: pre"> </span> function mouseDownHandler (event ){
// Make sure the mouse pointer is inside of the book
If (Math. abs (mouse. x) <PAGE_WIDTH ){
If (mouse. x <0 & page-1> = 0 ){
// We are on the left side, drag the previous page
Flips [page-1]. dragging = true;
Direction = "left ";
}
Else if (mouse. x> 0 & page + 1 <flips. length ){
// We are on the right side, drag the current page
Flips [page]. dragging = true;
Direction = "right ";
}
}
// Prevents the text selection
Event. preventDefault ();
}
Function mouseUpHandler (event ){
For (var I = 0; I <flips. length; I ++ ){
// If this flip was being dragged, animate to its destination
If (flips [I]. dragging ){
// Figure out which page we shoshould navigate
If (mouse. x <0 ){
Flipspolici2.16.tar get =-1;
If (direction = "right "){
Page = Math. min (page + 1, flips. length );
}
}
If (mouse. x> 0 ){
Flipspolici2.16.tar get = 1;
If (direction = "left "){
Page = Math. max (page-1, 0 );
}
}
}
// Console. log ("page:" + page + "; flips [" + I + "].tar get:" + flips? I =.tar get + "; flips [" + I + "]. dragging: "+ flips [I]. dragging );
Flips [I]. dragging = false;
}
// Console. log ("");
}
Excerpt from jian sheng's code Memorandum