book.html 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <title>书</title>
  6. <meta name="viewport" content="width=device-width, initial-scale=1,maximum-scale=1,user-scalable=no">
  7. <meta name="apple-mobile-web-app-capable" content="yes">
  8. <meta name="apple-mobile-web-app-status-bar-style" content="black">
  9. <!--标准mui.css-->
  10. <link rel="stylesheet" href="../css/mui.min.css">
  11. <style>
  12. .my-font {
  13. font-size: 28px;
  14. }
  15. .my-A {
  16. height: 80%;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <header id="header" class="mui-bar mui-bar-nav" style="padding-top: 10px;">
  22. <a class="mui-action-back mui-icon mui-icon-left-nav mui-pull-left" style="padding-top: 0px;margin-right: 5px;"></a>
  23. <!--<a id="zoom-jian" class="my-font">A-</a>-->
  24. <img id="zoom-jia" src="../images/common/A+.png" class="my-A" />
  25. <!--<a id="zoom-jia" class="my-font" style="margin-left: 15px;">A+</a>-->
  26. <img id="zoom-jian" src="../images/common/A-.png" class="my-A" />
  27. <!--<a id="zhuanhan" class="mui-icon mui-icon-loop" style="padding-top: 0px !important;font-weight: 800;"></a>-->
  28. <img id="zhuanhan" src="../images/common/zhuanhuan.png" class="my-A" />
  29. <a onclick="hideBar()" class="mui-pull-right" style="padding-top: 0px;margin-right: 20px;">隐藏</a>
  30. </header>
  31. <div id="content" class="mui-content" style="margin: 0px;padding: 0px;width: 300px !important;overflow: hidden;">
  32. </div>
  33. </body>
  34. <!--
  35. 作者:HZC
  36. 时间:2015-08-26
  37. 描述:图书
  38. -->
  39. <script src="../js/mui.min.js"></script>
  40. <script type="text/javascript">
  41. /**
  42. * 隐藏标题栏
  43. */
  44. function hideBar() {
  45. document.getElementById("header").style.display = 'none';
  46. var pdfW = plus.webview.getWebviewById('pdf-id');
  47. pdfW.setStyle({
  48. top: '0px',
  49. bottom: 0,
  50. bounce: 'vertical'
  51. })
  52. pdfW.hide();
  53. pdfW.show();
  54. }
  55. (function() {
  56. function initBookScal() {
  57. var screenHeight = plus.screen.resolutionHeight;
  58. var screenWidth = plus.screen.resolutionWidth;
  59. var heightRate = screenHeight / 350;
  60. var widthRate = screenWidth / 350;
  61. return {
  62. heightRate: heightRate,
  63. widthRate: widthRate
  64. };
  65. }
  66. mui.plusReady(function() {
  67. //plus.screen.lockOrientation("landscape");
  68. var self = plus.webview.currentWebview();
  69. var _href = self.href;
  70. window.screenRate = initBookScal();
  71. window.scalKey = self.href.substr(_href.lastIndexOf('/') + 1);
  72. mui.init({
  73. swipeBack: false,
  74. statusBarBackground: '#f7f7f7',
  75. gestureConfig: {
  76. tap: true, //默认为true
  77. doubletap: true, //默认为false
  78. longtap: false, //默认为false
  79. swipe: false, //默认为true
  80. drag: false, //默认为true
  81. hold: false, //默认为false,不监听
  82. release: false //默认为false,不监听
  83. },
  84. subpages: [{
  85. id: 'pdf-id',
  86. url: _href,
  87. styles: {
  88. top: '45px',
  89. bottom: 0,
  90. bounce: 'vertical'
  91. }
  92. }]
  93. });
  94. /**
  95. * 显示标题栏
  96. */
  97. function showBar() {
  98. document.getElementById("header").style.display = 'block';
  99. var pdfW = plus.webview.getWebviewById('pdf-id');
  100. pdfW.setStyle({
  101. top: '45px',
  102. bottom: 0,
  103. bounce: 'vertical'
  104. })
  105. pdfW.hide();
  106. pdfW.show();
  107. }
  108. setTimeout(function() {
  109. var pdfWin = plus.webview.getWebviewById("pdf-id");
  110. function saveScroll(sk) {
  111. //var scroll_top = window.pdf2htmlEX.defaultViewer.container.scrollTop;
  112. var scroll_top = window.document.getElementById('page-container').scrollTop;
  113. window.localStorage.setItem(sk, scroll_top);
  114. }
  115. pdfWin.evalJS(saveScroll.toString());
  116. var oldBack = mui.back;
  117. mui.back = function() {
  118. //plus.screen.lockOrientation("portrait");
  119. pdfWin.evalJS("window.saveScroll('" + window.scalKey + "')");
  120. plus.webview.currentWebview().opener().evalJS("mui.plusReady(function(){plus.screen.lockOrientation('portrait');})")
  121. oldBack();
  122. };
  123. pdfWin.evalJS(scrol.toString() + ";window.scrol('" + window.scalKey + "');")
  124. function scrol(sk) {
  125. var t = window.localStorage.getItem(sk);
  126. //if (t) window.pdf2htmlEX.defaultViewer.container.scrollTop = parseFloat(t);
  127. if (t) window.document.getElementById('page-container').scrollTop = parseFloat(t);
  128. }
  129. function zoom(s) {
  130. var meta = document.getElementsByTagName('meta')[1];
  131. meta.setAttribute('name', 'viewport');
  132. var c = 'width=device-width,initial-scale=' + s + ',minimum-scale=0.1,maximum-scale=10,user-scalable=yes';
  133. meta.setAttribute('content', c)
  134. //console.log(document.getElementsByTagName('head')[0].innerHTML)
  135. //console.log(document.innerHTML)
  136. }
  137. pdfWin.evalJS(zoom.toString());
  138. //var ss = window.localStorage.getItem(window.scalKey + 'scal');
  139. //window.zoom = ss ? parseFloat(ss) : window.screenRate.widthRate;
  140. window.zoomSize = window.zoomSize ? window.zoomSize : window.screenRate.widthRate;
  141. //window.zoom = window.screenRate.widthRate;
  142. pdfWin.evalJS("window.zoom(" + window.zoomSize + ")");
  143. document.getElementById("zoom-jia").addEventListener('tap', function() {
  144. window.zoomSize += 0.1;
  145. // console.log(window.zoomSize);
  146. changeScale(window.zoomSize);
  147. });
  148. document.getElementById("zoom-jian").addEventListener('tap', function() {
  149. window.zoomSize -= 0.1;
  150. // console.log(window.zoomSize)
  151. changeScale(window.zoomSize)
  152. })
  153. var orRes = true;
  154. document.getElementById("zhuanhan").addEventListener('tap', function() {
  155. plus.orientation.clearWatch(window.orien);
  156. if (orRes) {
  157. plus.screen.lockOrientation("landscape");
  158. window.zoomSize = window.screenRate.heightRate;
  159. pdfWin.evalJS("window.zoom(" + window.zoomSize + ")");
  160. orRes = false;
  161. } else {
  162. plus.screen.lockOrientation("portrait");
  163. window.zoomSize = window.screenRate.widthRate;
  164. pdfWin.evalJS("window.zoom(" + window.zoomSize + ")");
  165. orRes = true;
  166. }
  167. });
  168. function changeScale(scale) {
  169. var s = scale;
  170. //window.localStorage.setItem(window.scalKe//y + 'scal', s);
  171. pdfWin.evalJS("window.zoom(" + s + ")");
  172. }
  173. setTimeout(function() {
  174. window.orisize = 0;
  175. window.orien = plus.orientation.watchOrientation(function(o) {
  176. console.log(o.alpha)
  177. // console.log(window.orisize)
  178. var al = o.alpha;
  179. var cha = (al - window.orisize);
  180. cha < 0 && (cha = (-cha))
  181. if (cha < 50) {
  182. return;
  183. }
  184. window.orisize = al;
  185. if (0 <= o.alpha && o.alpha <= 90) { //竖屏
  186. plus.screen.lockOrientation("portrait");
  187. window.zoomSize = window.screenRate.widthRate;
  188. pdfWin.evalJS("window.zoom(" + window.zoomSize + ")");
  189. orRes = true;
  190. } else if (90 < o.alpha && o.alpha <= 180) { //横屏
  191. plus.screen.lockOrientation("landscape");
  192. window.zoomSize = window.screenRate.heightRate;
  193. pdfWin.evalJS("window.zoom(" + window.zoomSize + ")");
  194. orRes = false;
  195. } else if (180 < o.alpha && o.alpha <= 260) { //竖屏
  196. plus.screen.lockOrientation("portrait");
  197. window.zoomSize = window.screenRate.widthRate;
  198. pdfWin.evalJS("window.zoom(" + window.zoomSize + ")");
  199. orRes = true;
  200. } else if (260 < o.alpha && o.alpha <= 360) { //横屏
  201. plus.screen.lockOrientation("landscape");
  202. window.zoomSize = window.screenRate.heightRate;
  203. pdfWin.evalJS("window.zoom(" + window.zoomSize + ")");
  204. orRes = false;
  205. }
  206. //console.log("Orientation\nAlpha:" + o.alpha + "\nBeta:" + o.beta + "\nGamma:" + o.gamma);
  207. }, function(e) {
  208. console.log("Orientation error: " + e.message);
  209. });
  210. }, 3000);
  211. }, 2000);
  212. });
  213. })();
  214. </script>
  215. </html>