index.html 34 KB

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