javascript移动端电子书翻页效果实现代码

  

这篇文章主要介绍了javascript移动端电子书翻页效果实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  

效果   

 javascript移动端电子书翻页效果实现代码

  

1,后端给一长串的纯文本

  

2,前端根据屏幕的高度,将文本切割为n页

  

3,使用插件。js将切割好的每页,加上翻书效果

  

代码         & lt; !DOCTYPE html>   & lt; html lang=癳n”比;   & lt; head>   & lt;元charset=皍tf - 8”比;   & lt;元name=笆哟啊蹦谌?翱矶?设备宽度,初始=1.0,最小规模=1.0,最大范围=1.0,user-scalable=不”比;   & lt; title>手机端书本翻页效果& lt;/title>   & lt;风格类型=" text/css "比;   * {   填充:0;   保证金:0;   }      超文本标记语言   身体{   高度:100%;   宽度:100%;   }      #{杂志   宽度:100%;   高度:100%;   位置:相对;   溢出:隐藏;      }      #{页面   宽度:100%;   高度:100%;   位置:相对;   z - index: 1;   }   #页div.turn-page {   背景:# fff;   }   #内容{   高度:0;   溢出:隐藏;   宽度:100%;   }   # contentText {   宽度:100%;   }/*这里是内容的样式,修改时候,一起修改*/div.turn-page # contentText {   空白:pre-wrap;   box-sizing: border-box;   填充:0 10 px;   }         #提醒{   位置:绝对的;   底部:40像素;   左:50%;   变换:translateX (-50%);   背景:rgba (0, 0, 0, 0.6);   border - radius: 4 px;   颜色:# fff;   z - index: 10;   字体大小:12 px;   填充:6 px 10 px;   显示:没有;   }   & lt;/style>   & lt;/head>   & lt; body>      & lt; div id=霸又尽北?   & lt; div id="页面"祝辞& lt;/div>   & lt; div id=澳谌荨痹?   & lt; div id=" contentText "祝辞& lt;/div>   & lt;/div>   & lt;/div>   & lt; div id=熬洹弊4? lt;/div>   & lt;脚本type=" text/javascript " src=" https://www.yisu.com/zixun/js/jquery-3.3.1.min.js "祝辞& lt;/script>   & lt;脚本type=" text/javascript " src=" https://www.yisu.com/zixun/js/turn.js "祝辞& lt;/script>      & lt;脚本type=" text/javascript祝辞   var writeStr=" "//模拟请求文本数据   $ . get ("/js/data.txt”,功能(数据){   initPage(数据);   })         函数initPage (writeStr) {   如果(! writeStr) {   返回;   }      var美元包=$(" #杂志");   var美元页面=$(" #页");   var w=$ page.width ();//窗口的宽度   h=$ var page.height ();//窗口的高度   console.log (h)   var内容=美元(“# contentText”);      美元content.html (writeStr);   var len=writeStr.length;//总长度   var cH=$ content.height ();//总高度   var pageStrNum;//每页大概有多少个字符   如果(cH比;h) {   pageStrNum=(h/cH) *兰;//每页大概有多少个字符   var obj=overflowhiddenTow($内容writeStr h);   美元page.append (' & lt; div> ' + obj.curr + & lt;/div>);   而(obj。下一个,,obj.next。长度比;0){   obj=overflowhiddenTow($内容obj.next h);   美元page.append (' & lt; div> ' + obj.curr + & lt;/div>);   }   其他}{   返回;   }//文字切割算法   函数overflowhiddenTow(美元文本,str) {   喉咙var=pageStrNum;   var tempstr=str.substring(0,喉咙);   var len=str.length;   美元texts.html (tempstr);//取的字节较少,应该增加   而($ texts.height () & lt;在,,喉咙& lt;len) {   喉咙=喉咙+ 2;   tempstr=str.substring(0,喉咙);   美元texts.html (tempstr);   }//取的字节较多,应该减少   而(texts.height美元()在在,,喉咙比;0){   喉咙喉咙=- 2;   tempstr=str.substring(0,喉咙);   美元texts.html (tempstr);   }      返回{   咕咕叫:str.substring(0,喉咙),   下一个:str.substring(喉咙)   }      }      美元page.turn ({   宽度:w,   高度:h,   海拔:50,   显示:“单”,   梯度:没错,   autoCenter:没错,   当:{   开始:函数(){},   转:函数(e,页面视图){},   转:函数(e,页面视图){      }   }   });            var moveObj=零;   var endObj=零;      函数getPoint (e) {   var obj=e;   如果(e。targetTouches,,e.targetTouches。长度比;0){   obj=e.targetTouches [0];   }   返回obj;   }         用美元。(“touchstart mousedown”功能(e) {   var obj=getPoint (e);   moveObj={   x: obj.clientX   };   });   用美元。(“touchmove mousemove”功能(e) {   var obj=getPoint (e);   endObj={   x: obj.clientX   };   });         用美元。(“touchend mouseup”功能(e) {   如果(moveObj,,endObj) {   var mis=endObj。x - moveObj.x;   如果(Math.abs (mis)的在30){   var pageCount=$ page.turn(“页面”);//总页数   var currentPage=$ page.turn(“页面”);//当前页   如果(mis祝辞0){   如果当前页的在1){   美元的页面。(“页面”,当前页- 1);   其他}{   console.log(“已经是第一页”)   showAlert(“已经是第一页”);   }   其他}{   如果(当前页& lt;pageCount) {   美元的页面。(“页面”,当前页+ 1);   其他}{   console.log(“最后一页”);   showAlert(“已经是最后一页”);   }   }      }      }   moveObj=零;   endObj=零;   });      var警告美元=$(" #警戒”);   var计时器=零;   函数showAlert(味精){   clearTimeout(计时器);   美元alert.text(味精);   美元alert.fadeIn ();   计时器=setTimeout(函数(){   美元alert.fadeOut ();   }, 1000)   }   }   & lt;/script>   & lt;/body>   & lt;/html>

javascript移动端电子书翻页效果实现代码