index.html 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport"
  7. content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
  8. <title>电子书</title>
  9. <link rel="stylesheet" href="./public/member/manual/css/animate.min.css">
  10. <link rel="stylesheet" href="./public/member/manual/css/tooltipster.bundle.min.css">
  11. <link rel="stylesheet" href="./public/member/manual/css/tooltipster-sideTip-borderless.min.css">
  12. <link rel="stylesheet" href="./public/member/manual/css/progressJS.css">
  13. <link rel="stylesheet" href="./public/member/manual/css/zdialog.css">
  14. <link rel="stylesheet" href="./public/member/manual/css/style.min.css">
  15. <script src="./public/member/manual/js/jquery1.9.0.js"></script>
  16. <script src="./public/member/manual/js/jquery-ui-1.9.2.min.js"></script>
  17. <script src="./public/member/manual/js/jquery.touchSwipe.min.js"></script>
  18. <script src="./public/member/manual/js/modernizr.2.5.3.min.js"></script>
  19. <script src="./public/member/manual/js/tooltipster.bundle.js"></script>
  20. <script src="./public/member/manual/js/jquery.qrcode.min.js"></script>
  21. <script src="./public/member/manual/js/jquery.panzoom.min.js"></script>
  22. <script src="./public/member/manual/js/jquery.dragscroll.js"></script>
  23. <script src="./public/member/manual/js/jquery.mousewheel.min.js"></script>
  24. <script src="./public/member/manual/js/wow.min.js"></script>
  25. <script src="./public/member/manual/js/progressJS.js"></script>
  26. <script src="./public/member/manual/js/zdialog.js"></script>
  27. <script src="./public/data.js"></script>
  28. <link rel="stylesheet" href="./public/panonn/static/css/puc.css">
  29. <script>
  30. let page = getQueryParamByKey('pages') || 'pages';
  31. let mode = getQueryParamByKey('mode');
  32. let currentpage = pages[page]
  33. var imgWid = currentpage.size[0];
  34. var imgHig = currentpage.size[1];
  35. var bookArr = [];
  36. for (let i = 0; i < currentpage.total; i++) {
  37. bookArr.push(`./pages/${page}/${i + 1}.${currentpage.type || 'png'}`)
  38. }
  39. var box_w = window.innerWidth;
  40. var box_y = window.innerHeight;
  41. var sacle = 1;
  42. console.log('比例', imgWid / imgHig, box_w / box_y)
  43. if (imgWid / imgHig < box_w / box_y) {
  44. sacle = imgWid / box_w;
  45. imgWid = imgWid / sacle;
  46. imgHig = imgHig / sacle;
  47. } else {
  48. sacle = imgHig / box_y;
  49. imgWid = imgWid / sacle;
  50. imgHig = imgHig / sacle;
  51. }
  52. // 信息配置
  53. $OP = {
  54. list: bookArr,
  55. thumbnail: [],
  56. width: imgWid,// 图片宽度
  57. height: imgHig// 图片高度
  58. }
  59. console.log('输出OP', $OP)
  60. </script>
  61. <style>
  62. * {
  63. touch-action: pan-y;
  64. }
  65. html {
  66. background-image: url(./bg.jpg);
  67. background-size: cover;
  68. }
  69. .flipbook-panzoom {
  70. position: fixed;
  71. top: 0px;
  72. left: 0px;
  73. z-index: 7;
  74. }
  75. </style>
  76. </head>
  77. <body ondragstart="window.event.returnValue=false" oncontextmenu="window.event.returnValue=false"
  78. onselectstart="event.returnValue=false">
  79. <div class="flipbook-panzoom">
  80. <div class="flipbook-viewport nomatrix">
  81. <div class="container">
  82. <div id="flipbook" class="flipbook"></div>
  83. </div>
  84. </div>
  85. </div>
  86. <!-- 附属模块 -->
  87. <div class="config">
  88. <!-- 底部功能栏 -->
  89. <div class="bottom_box bottom_p">
  90. <div class="bottom_bar">
  91. <!-- <div class="btnbox tooltip thumbnail" title="缩略图"></div> -->
  92. <div class="btnbox tooltip playpage" title="自动翻页" style="background-size: auto 75%"></div>
  93. <div class="btnbox tooltip shangyiye" title="上一页"></div>
  94. <div class="btninput tooltip" title="当前页面/总页数">
  95. <input id="pagenum" type="text" onkeyup="value=value.replace(/[^\d]/g,'')">
  96. </div>
  97. <div class="btnbox tooltip xiayiye" title="下一页"></div>
  98. <div class="btnbox tooltip flsize" title="放大/还原" style="background-size: auto 75%;"></div>
  99. <div class="btnbox tooltip bangzhu" title="使用帮助" style="display: none;"></div>
  100. <div class="qrcode">
  101. <div class="btnbox" style="margin: 3px;display: none;"><img
  102. src="./public/member/manual/img/erweima2.svg"></div>
  103. <div class="qrimg">
  104. <p>扫一扫,手机阅读</p>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. <!-- pc缩略图 -->
  110. <div class="thumbnail_box_p">
  111. <div class="thumbnail_p">
  112. <ul></ul>
  113. </div>
  114. </div>
  115. <!-- 移动缩略图 -->
  116. <div class="thumbnail_box_v animated">
  117. <div class="title">
  118. <h3 style="line-height: 2.8;">缩略图列表</h3>
  119. <img class="off" src="./public/member/manual/img/off.svg">
  120. </div>
  121. <div class="box_list">
  122. <ul></ul>
  123. </div>
  124. </div>
  125. <!-- 自动播放速度控制器 -->
  126. <div class="speed_p" style="z-index: 8">
  127. <span>翻页速度</span>
  128. <img src="./public/member/manual/img/minus.svg" style="left: 82px;">
  129. <div class="spran">
  130. <div class="progress_p"></div>
  131. </div>
  132. <img src="./public/member/manual/img/add.svg" style="right: 5px;">
  133. </div>
  134. <div class="speed_v" style="z-index: 8">
  135. <span>翻页速度</span>
  136. <img src="./public/member/manual/img/add.svg" style="top: 5px;">
  137. <div class="spran">
  138. <div class="progress_v"></div>
  139. </div>
  140. <img src="./public/member/manual/img/minus.svg" style="bottom: 47px;">
  141. </div>
  142. <!-- 帮助 -->
  143. <div class="help help_p">
  144. <div class="helpbox">
  145. <div>
  146. <p>缩略图</p>
  147. <img src="./public/member/manual/img/1xian.png">
  148. </div>
  149. <div>
  150. <p>自动翻页</p>
  151. <img src="./public/member/manual/img/2xian.png">
  152. </div>
  153. <div>
  154. <p>上一页</p>
  155. <img src="./public/member/manual/img/3xian.png">
  156. </div>
  157. <div style="width: 70px;">
  158. <p>当前页面/总页数</p>
  159. <img src="./public/member/manual/img/4xian.png">
  160. </div>
  161. <div>
  162. <p>下一页</p>
  163. <img src="./public/member/manual/img/3xian.png">
  164. </div>
  165. <div>
  166. <p>放大/还原</p>
  167. <img src="./public/member/manual/img/2xian.png">
  168. </div>
  169. <div>
  170. <p>使用帮助</p>
  171. <img src="./public/member/manual/img/1xian.png">
  172. </div>
  173. <div class="helpqr">
  174. <p>手机扫码阅读</p>
  175. <img src="./public/member/manual/img/1xian.png">
  176. </div>
  177. </div>
  178. </div>
  179. <div class="help_m"></div>
  180. </div>
  181. <div class="puc_bg" style="display: block;"></div>
  182. <i class="puc_col2 book_close" style="display: none;"> </i>
  183. <script>
  184. var thumbnailoff = false // 缩略图开关
  185. var thumbnailinit = true
  186. var onpalyer = false // 自动翻页开关
  187. var palytime = null // 定时器
  188. var timenum = 5000 // 定时器
  189. var flsizeoff = false // 缩放开关
  190. var helptem = false // 帮助开关
  191. var blsalc = 1 // 书的缩放比例
  192. var winsalc = 1 // 缩放比例
  193. var panzoom = null// 放大拖动
  194. if (/windows phone|iphone|android/ig.test(window.navigator.userAgent)) {
  195. $(".book_close").css("top", ".3rem");
  196. $(".book_close").css("right", ".3rem");
  197. }
  198. $("#flipbook").append('<div class="page" style="width:' + $OP.width + 'px;height:' + $OP.height + 'px"><img style="width:100%;height:100%" src = "' + $OP.list[0] + '"/></div>');
  199. // 缩略图
  200. $(".thumbnail").click(function () {
  201. if (thumbnailinit) {
  202. var tem = ''
  203. if ($OP.list.length % 2 == 0) {
  204. for (var i = 0; i < $OP.list.length; i++) {
  205. $(".thumbnail_box_v ul").append('<li data-page="' + (Number([i]) + 1) + '"><div class="xv"><img src="' + $OP.thumbnail[i] + '"><div></div></div></li>');
  206. if (i == 0 || i == $OP.list.length - 1) {
  207. tem += '<li data-page="' + (Number([i]) + 1) + '"><div class="pagebox"><div data-page="' + (Number([i]) + 1) + '"><img src="' + $OP.thumbnail[i] + '"></div></div></li>'
  208. } else if (i % 2 == 0) {
  209. tem += '<div data-page="' + (Number([i]) + 1) + '"><img src="' + $OP.thumbnail[i] + '"></div></li>'
  210. } else {
  211. tem += '<li data-page="' + (Number([i]) + 1) + '"><div class="pagebox"><div data-page="' + (Number([i]) + 1) + '"><img src="' + $OP.thumbnail[i] + '"></div>'
  212. }
  213. }
  214. } else {
  215. for (var i = 0; i < $OP.list.length; i++) {
  216. $(".thumbnail_box_v ul").append('<li data-page="' + (Number([i]) + 1) + '"><div class="xv"><img src="' + $OP.thumbnail[i] + '"><div></div></div></li>');
  217. if (i == 0) {
  218. tem += '<li data-page="' + (Number([i]) + 1) + '"><div class="pagebox"><div data-page="' + (Number([i]) + 1) + '"><img src="' + $OP.thumbnail[i] + '"></div></div></li>'
  219. } else if (i % 2 == 0) {
  220. tem += '<div data-page="' + (Number([i]) + 1) + '"><img src="' + $OP.thumbnail[i] + '"></div></li>'
  221. } else {
  222. tem += '<li data-page="' + (Number([i]) + 1) + '"><div class="pagebox"><div data-page="' + (Number([i]) + 1) + '"><img src="' + $OP.thumbnail[i] + '"></div>'
  223. }
  224. }
  225. }
  226. $(".thumbnail_box_p ul").append(tem);
  227. tem = null
  228. $(".pagebox>div").css("width", 70 * ($OP.width / $OP.height) + "px")
  229. $(".xv").css("padding-bottom", $OP.height / $OP.width * 100 + "%")
  230. thumbnailinit = false
  231. }
  232. thumbnailoff = !thumbnailoff
  233. if (thumbnailoff) {
  234. $(this).css("background-color", "rgba(0, 0, 0, 0.5) !important")
  235. var pagenum = $('.flipbook').turn('page')
  236. if ($(window).width() >= 600) {
  237. $(".thumbnail_box_p").fadeIn()
  238. var Oact_p = $(".thumbnail_box_p li div[data-page='" + pagenum + "']").parent().parent()
  239. Oact_p.addClass("active").siblings().removeClass("active")
  240. } else {
  241. $(".thumbnail_box_v").fadeIn().addClass('fadeInUp').removeClass("fadeOutDownBig");
  242. var Oact_v = $(".thumbnail_box_v li[data-page='" + pagenum + "']")
  243. Oact_v.addClass("active").siblings().removeClass("active")
  244. }
  245. } else {
  246. offthum()
  247. }
  248. pansepalyer()
  249. })
  250. // 缩略图拖动
  251. $('.thumbnail_box_p ul').dragscroll({
  252. direction: 'scrollLeft',
  253. });
  254. // 关闭缩略图
  255. function offthum() {
  256. thumbnailoff = false
  257. $(".thumbnail").css("background-color", "")
  258. $(".thumbnail_box_p").fadeOut()
  259. $(".thumbnail_box_v").fadeOut()
  260. }
  261. // 缩略图跳转
  262. $(".thumbnail_box_p").on("click", "li", function () {
  263. $('.flipbook').turn('page', $(this).data("page"))
  264. $(this).addClass("active").siblings().removeClass("active")
  265. })
  266. $(".thumbnail_box_v").on("click", "li", function () {
  267. thumbnailoff = !thumbnailoff
  268. $(".thumbnail_box_v").fadeOut().addClass('fadeOutDownBig').removeClass("fadeInUp");
  269. $('.flipbook').turn('page', $(this).data("page"))
  270. })
  271. $(".thumbnail_box_v .off").click(function () {
  272. thumbnailoff = !thumbnailoff
  273. $(".thumbnail_box_v").addClass('fadeOutDownBig').removeClass("fadeInUp");
  274. offthum()
  275. })
  276. // 自动翻页
  277. $(".playpage").click(function () {
  278. onpalyer = !onpalyer
  279. if (onpalyer) {
  280. $(".playpage").css("background-image", "url(./public/member/manual/img/pause.png)")
  281. palytime = setInterval(function () {
  282. if ($('.flipbook').turn('page') != $('.flipbook').turn('pages')) {
  283. $('.flipbook').turn('next');
  284. } else {
  285. $('.flipbook').turn('page', 1);
  286. }
  287. }, timenum)
  288. if ($(window).width() >= 600) {
  289. speedOff('.speed_p')
  290. } else {
  291. speedOff('.speed_v')
  292. }
  293. offthum()
  294. } else {
  295. pansepalyer()
  296. }
  297. })
  298. // 拉杆4秒自动隐藏
  299. var disout
  300. function speedOff(e) {
  301. $(e).fadeIn()
  302. if (disout) clearTimeout(disout);
  303. disout = setTimeout(function () {
  304. $(e).fadeOut()
  305. }, 4000)
  306. }
  307. // 翻页时间控制
  308. var progress_p = new Progress('.progress_p', {
  309. val: 80,
  310. size: 4,
  311. precision: 0,
  312. drag: true,
  313. direction: 'horizontal',
  314. getVal: function (el) {
  315. speedOff('.speed_p')
  316. timenum = ((100 - el.val) / 100 * 20 + 1) * 1000
  317. clearInterval(palytime)
  318. palytime = setInterval(function () {
  319. if ($('.flipbook').turn('page') != $('.flipbook').turn('pages')) {
  320. $('.flipbook').turn('next');
  321. } else {
  322. $('.flipbook').turn('page', 1);
  323. }
  324. }, timenum)
  325. }
  326. })
  327. var progress_v = new Progress('.progress_v', {
  328. val: 80, //初始值 取值范围:0-100
  329. size: 4, //控件大小默认值为10,可结合css自行修改样式
  330. precision: 0, //val精度配置,默认保留0位小数,最多配位4位
  331. drag: true, //默认开启拖拽,关闭设为false,不配置默认为true
  332. direction: 'vertical', //方向 默认水平 vertical 垂直
  333. getVal: function (el) {
  334. speedOff('.speed_v')
  335. timenum = ((100 - el.val) / 100 * 20 + 1) * 1000
  336. clearInterval(palytime)
  337. palytime = setInterval(function () {
  338. if ($('.flipbook').turn('page') != $('.flipbook').turn('pages')) {
  339. $('.flipbook').turn('next');
  340. } else {
  341. $('.flipbook').turn('page', 1);
  342. }
  343. }, timenum)
  344. }
  345. })
  346. // 取消自动翻页
  347. function pansepalyer() {
  348. onpalyer = false
  349. $(".playpage").css("background-image", "url(./public/member/manual/img/play.png)")
  350. $(".speed_p").fadeOut()
  351. $(".speed_v").fadeOut()
  352. clearInterval(palytime)
  353. }
  354. // 上一页
  355. $(".shangyiye").click(function () {
  356. onprevious()
  357. offthum()
  358. })
  359. // 页码跳转
  360. var isval
  361. $("#pagenum").focus(function () {
  362. isval = $("#pagenum").val()
  363. $("#pagenum").val("")
  364. })
  365. $("#pagenum").keyup(function (event) {
  366. if (event.keyCode == 13) {
  367. gopage()
  368. }
  369. })
  370. $("#pagenum").blur(function () {
  371. gopage()
  372. })
  373. function gopage() {
  374. if ($("#pagenum").val() == isval.replace("/", "")) {
  375. $("#pagenum").val(isval)
  376. return
  377. }
  378. if ($("#pagenum").val() == "") {
  379. $("#pagenum").val(isval)
  380. } else {
  381. if ($("#pagenum").val() <= 0) {
  382. $('.flipbook').turn('page', "1");
  383. } else if ($("#pagenum").val() > $('.flipbook').turn('pages')) {
  384. $('.flipbook').turn('page', $('.flipbook').turn('pages'));
  385. } else {
  386. $('.flipbook').turn('page', $("#pagenum").val());
  387. }
  388. pansepalyer()
  389. isval = $("#pagenum").val()
  390. }
  391. }
  392. // 下一页
  393. $(".xiayiye").click(function () {
  394. onnext()
  395. offthum()
  396. })
  397. // 初始化panzoom
  398. $(".flipbook-panzoom").panzoom()
  399. flmove(true)
  400. var offs
  401. $(".flipbook-panzoom").on('panzoomzoom', function (event, scale) {
  402. flsizeoff = true
  403. enlarge()
  404. if (offs) clearTimeout(offs);
  405. offs = setTimeout(function () {
  406. if (scale.scale < 1) {
  407. narrow()
  408. } else {
  409. $.DialogByZ.Autofade({ Content: "双击可还原" })
  410. }
  411. }, 300)
  412. });
  413. // 放大与还原
  414. $(".flsize").click(function () {
  415. offthum()
  416. if (!flsizeoff) {
  417. enlarge()
  418. $.DialogByZ.Autofade({ Content: "双击可还原" })
  419. } else {
  420. narrow()
  421. }
  422. pansepalyer()
  423. })
  424. // 放大时双击还原
  425. let clicked = 1
  426. let clickedTime = {
  427. timeA: '',
  428. timeB: ''
  429. }
  430. $(".flipbook-panzoom").on('panzoomend', function (e, panzoom, matrix, changed) {
  431. // if (changed) {
  432. // 屏幕点击控制
  433. if ($(window).width() >= 600) {
  434. if (onpalyer) {
  435. speedOff('.speed_p')
  436. }
  437. } else {
  438. if (onpalyer) {
  439. speedOff('.speed_v')
  440. }
  441. }
  442. // } else {
  443. // 放大时双击还原
  444. if (clicked === 1) {
  445. clickedTime.timeA = new Date()
  446. clicked++
  447. } else if (clicked === 2) {
  448. clickedTime.timeB = new Date()
  449. if (Math.abs(clickedTime.timeA - clickedTime.timeB) < 200) {
  450. if (flsizeoff) {
  451. narrow()
  452. } else {
  453. enlarge()
  454. }
  455. clicked = 1
  456. } else {
  457. clickedTime.timeA = new Date()
  458. }
  459. }
  460. // }
  461. offthum()
  462. });
  463. // 放大
  464. function enlarge() {
  465. flsizeoff = true
  466. $(".flipbook-panzoom").panzoom("zoom", blsalc = 2, { // 缩放
  467. silent: true
  468. });
  469. $(".flsize").css("background-image", "url(./public/member/manual/img/narrow_icon.png)")
  470. flmove(false)
  471. }
  472. // 还原
  473. function narrow() {
  474. flsizeoff = false
  475. $(".flsize").css("background-image", "url(./public/member/manual/img/enlarge_icon.png)")
  476. $(".flipbook-panzoom").panzoom("reset")
  477. blsalc = 1
  478. flmove(true)
  479. }
  480. // 是否禁止拖动
  481. function flmove(off) {
  482. $(".flipbook-panzoom").panzoom("option", {
  483. disableXAxis: off,
  484. disableYAxis: off,
  485. })
  486. }
  487. // 帮助
  488. $(".bangzhu").click(function () {
  489. offthum()
  490. helptem = !helptem
  491. if (helptem) {
  492. $(".help").fadeIn()
  493. $(".help_m").css("display", "block")
  494. } else {
  495. $(".help").fadeOut()
  496. $(".help_m").css("display", "none")
  497. }
  498. pansepalyer()
  499. })
  500. $(".help_m").click(function () {
  501. helptem = !helptem
  502. $(".help").fadeOut()
  503. $(".help_m").css("display", "none")
  504. })
  505. // 二维码
  506. $('.qrimg').qrcode({
  507. render: "canvas", //也可以替换为table
  508. text: window.location.href,
  509. size: 135,
  510. mode: 0,
  511. fill: "#000",
  512. background: "#fff",
  513. radius: .5
  514. });
  515. function isChrome() {
  516. return navigator.userAgent.indexOf('Chrome') != -1;
  517. }
  518. // 初始配置
  519. function loadApp() {
  520. var flipbook = $('.flipbook');
  521. // 检查CSS是否已经加载
  522. if (flipbook.width() == 0 || flipbook.height() == 0) {
  523. setTimeout(loadApp, 10);
  524. return;
  525. }
  526. // 翻书主体配置项
  527. $('.flipbook').turn({
  528. elevation: 50,// 转换期间页面的高度
  529. acceleration: !isChrome(),// 设置硬件加速模式,对于触摸设备(移动端),此值必须为真。
  530. pages: $OP.list.length,
  531. direction: mode || 'ltr', //rtl从右到左,ltr左到右
  532. autoCenter: true, // 居中
  533. gradients: false,// 显示渐变阴影
  534. duration: 1000,// 设置翻页动画持续时间即翻页的快慢,默认600
  535. when: {
  536. // 页面启动时触发
  537. start: function (e, page, view) {
  538. setTimeout(function () {
  539. getpagenum()
  540. updateDepth()
  541. }, 100)
  542. },
  543. // 当前范围需要某些页面时 触发此事件
  544. missing: function (event, pages) {
  545. for (var i = 0; i < pages.length; i++) {
  546. addPage(pages[i]);
  547. }
  548. }
  549. }
  550. });
  551. getpagenum()
  552. }
  553. // 配置依赖文件
  554. yepnope({
  555. test: Modernizr.csstransforms,
  556. yep: ['./public/member/manual/lib/turn.min.js'],
  557. nope: ['./public/member/manual/lib/turn.html4.min.js'],
  558. both: ['./public/member/manual/js/index.js', './public/member/manual/lib/scissor.min.js', './public/member/manual/css/fl.css'],
  559. complete: loadApp
  560. });
  561. // 配置缩略图信息
  562. $OP.list.forEach(val => {
  563. var i = val.lastIndexOf(".")
  564. $OP.thumbnail.push(val.slice(0, i) + val.slice(i))
  565. });
  566. // 动态加载内容图片
  567. function addPage(page) {
  568. var pages = $('.flipbook').turn('pages');
  569. var element = $('<div class="page" style="width:' + $OP.width + 'px;height:' + $OP.height + 'px"></div>', {});
  570. if ($('.flipbook').turn('addPage', element, page)) {
  571. console.log('查看', page, $OP.list.length)
  572. if (page == $OP.list.length) {
  573. element.html('<img style="width:100%;height:100%" src = "' + './pages/1/73.png' + '"/>');
  574. } else {
  575. element.html('<img style="width:100%;height:100%" src = "' + $OP.list[page] + '"/>');
  576. }
  577. }
  578. }
  579. //鼠标滚轮事件
  580. $('.flipbook-viewport').mousewheel(function (event, delta, deltaX, deltaY) {
  581. if (blsalc <= 1) {
  582. if (delta == 1) {
  583. $('.flipbook').turn('previous');
  584. } else {
  585. $('.flipbook').turn('next');
  586. }
  587. flsizeoff = false
  588. $(".flsize").css("background-image", "url(./public/member/manual/img/comiisfangda.png)")
  589. pansepalyer()
  590. } else {
  591. if (delta == 1) {
  592. if (blsalc > 5) return
  593. blsalc = blsalc + 0.1
  594. } else {
  595. if (blsalc <= 1) return
  596. blsalc = blsalc - 0.1
  597. }
  598. flsizeoff = true
  599. $(".flipbook-panzoom").panzoom("zoom", blsalc, {
  600. silent: true
  601. });
  602. $(".flsize").css("background-image", "url(./public/member/manual/img/comiissuoxiao.png)")
  603. flmove(false)
  604. }
  605. })
  606. // wow动画
  607. if (!(/msie [6|7|8|9]/i.test(navigator.userAgent))) {
  608. new WOW().init();
  609. };
  610. // 手机阅读二维码
  611. $(".qrcode").hover(function () {
  612. $(".qrimg").fadeIn()
  613. }, function () {
  614. $(".qrimg").fadeOut()
  615. })
  616. // 页码显示
  617. function getpagenum() {
  618. $("#pagenum").val($('.flipbook').turn('page') + '/' + $('.flipbook').turn('pages'))
  619. }
  620. // 执行上一页
  621. function onprevious() {
  622. if ($('.flipbook').turn('page') == 1) {
  623. $.DialogByZ.Autofade({ Content: "这是第一页" })
  624. }
  625. $('.flipbook').turn('previous');
  626. pansepalyer()
  627. }
  628. // 执行下一页
  629. function onnext() {
  630. if ($('.flipbook').turn('page') == $('.flipbook').turn('pages')) {
  631. $.DialogByZ.Autofade({ Content: "这是最后一页" })
  632. }
  633. $('.flipbook').turn('next');
  634. pansepalyer()
  635. }
  636. // 翻书厚度
  637. function updateDepth() {
  638. if ($(window).width() >= 600) {
  639. if ($(".p" + $('.flipbook').turn('pages')).length) {
  640. $(".p" + $('.flipbook').turn('pages')).addClass("plast")
  641. }
  642. $(".odd").each(function () {
  643. if ($(this).find(".oddshadow").length == 0) {
  644. $(this).append("<div class='oddshadow'></div>")
  645. }
  646. })
  647. $(".even").each(function () {
  648. if ($(this).find(".evenshadow").length == 0) {
  649. $(this).append("<div class='evenshadow'></div>")
  650. }
  651. })
  652. }
  653. var page = $('.flipbook').turn('page'),
  654. pages = $('.flipbook').turn('pages'),
  655. depthWidth = page / 4
  656. if (page == pages || page == 1) {
  657. $('.flipbook .thickness_left').css({
  658. width: 0,
  659. left: 0
  660. });
  661. $('.flipbook .thickness').css({
  662. width: 0,
  663. right: 0
  664. });
  665. } else {
  666. $('.flipbook .thickness_left').css({
  667. width: depthWidth / winsalc,
  668. left: -depthWidth / winsalc
  669. });
  670. $('.flipbook .thickness').css({
  671. width: (pages / 4 - depthWidth) / winsalc,
  672. right: -(pages / 4 - depthWidth) / winsalc
  673. });
  674. }
  675. }
  676. $(function () {
  677. // 翻书触摸触发翻页
  678. // $("#flipbook").swipe({
  679. // swipeLeft: function () {
  680. // if (!flsizeoff) {
  681. // onnext()
  682. // }
  683. // },
  684. // swipeRight: function () {
  685. // if (!flsizeoff) {
  686. // onprevious()
  687. // }
  688. // }
  689. // })
  690. // 翻书触摸触发翻页
  691. $("#flipbook").swipe({
  692. swipeLeft: function () {
  693. if (!flsizeoff) {
  694. if (window.location.href.includes('rtl')) onprevious()
  695. else onnext()
  696. }
  697. },
  698. swipeRight: function () {
  699. if (!flsizeoff) {
  700. if (window.location.href.includes('rtl')) onnext()
  701. else onprevious()
  702. }
  703. }
  704. })
  705. // title提示语
  706. $('.tooltip').tooltipster({
  707. theme: 'tooltipster-borderless',
  708. delay: 600,
  709. });
  710. })
  711. // 宽度大小适配
  712. function windowonresize() {
  713. if ($(window).width() >= 600) {
  714. // PC
  715. $('.flipbook').turn('display', "double");
  716. $(".bottom_box").addClass("bottom_p").removeClass("bottom_v")
  717. $(".help").addClass("help_p").removeClass("help_v")
  718. $(".qrcode").fadeIn()
  719. if ($OP.width * 2 > $(window).width() || $OP.height > $(window).height()) {
  720. winsalc = ($(window).width() - 100) / ($OP.width * 2)
  721. var heisalc = ($(window).height() - 120) / $OP.height
  722. var salc = winsalc > heisalc ? heisalc : winsalc
  723. $(".flipbook-viewport").css({
  724. "transform": "scale(" + salc + ")",
  725. })
  726. } else {
  727. $(".flipbook-viewport").css({
  728. "transform": "scale(1)",
  729. })
  730. }
  731. $(".flipbook-viewport .flipbook").css({ "width": ($OP.width * 2) + "px", "height": $OP.height + "px", "left": "-" + $OP.width + "px", "top": "-" + ($OP.height / 2) + "px" })
  732. $(".page").css("height", $OP.height)
  733. } else {
  734. // 移动端
  735. $(".odd .oddshadow").remove()
  736. $(".even .evenshadow").remove()
  737. $('.flipbook').turn('display', "single");
  738. $(".bottom_box").addClass("bottom_v").removeClass("bottom_p")
  739. $(".help").addClass("help_v").removeClass("help_p")
  740. $(".qrcode").fadeOut()
  741. if ($OP.width * 2 > $(window).width()) {
  742. winsalc = $(window).width() / ($OP.width * 2)
  743. $(".flipbook-viewport").css({
  744. "transform": "scale(" + winsalc + ")",
  745. })
  746. } else {
  747. $(".flipbook-viewport").css({
  748. "transform": "scale(1)",
  749. })
  750. }
  751. $(".flipbook-viewport .flipbook").css({ "width": ($OP.width * 2) + "px", "height": $OP.height * 2 + "px", "left": "-" + $OP.width + "px", "top": "-" + ($OP.height) + "px" })
  752. $(".page").css("height", $OP.height * 2)
  753. }
  754. offthum()
  755. $(".speed_p").hide()
  756. $(".speed_v").hide()
  757. pansepalyer()
  758. }
  759. // 监听窗口
  760. var timer;
  761. $(window).resize(function () {
  762. if (timer) clearTimeout(timer);
  763. timer = setTimeout(function () {
  764. windowonresize()
  765. setTimeout(() => {
  766. windowonresize()
  767. }, 500);
  768. }, 300)
  769. })
  770. // 微信禁止拖动
  771. // document.body.addEventListener('touchmove', function (evt) {
  772. // evt.preventDefault()
  773. // }, { passive: false })
  774. // 苹果
  775. function isIOS() {
  776. var u = navigator.userAgent;
  777. var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
  778. if (isiOS) {
  779. $(".bottom_v").css("height", "60px")
  780. }
  781. }
  782. // 公共关闭弹窗
  783. $(document).on('click', '.book_close', function () {
  784. if (window.parent.vue_app) {
  785. window.parent.vue_app.close_iframe();
  786. return
  787. }
  788. window.parent.close_iframe();
  789. });
  790. </script>
  791. </body>
  792. </html>