index.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470
  1. /**
  2. * Created by fierayan on 2014/11/13.
  3. */
  4. // 渐显元素
  5. function showElement(){
  6. switch (pageNumber){
  7. case 1:
  8. case 2:
  9. var currentPage=pageNumber;
  10. if(isFlip[currentPage]===2){
  11. setTimeout(function(){
  12. $(".p"+currentPage+"__f_des").addClass("fadeIn");
  13. },1000);
  14. setTimeout(function(){
  15. $(".p"+currentPage+"__main").addClass("fadeIn");
  16. },1500);
  17. setTimeout(function(){
  18. $(".p"+currentPage+"__f_band").addClass("fadeIn");
  19. $(".p"+currentPage+"__f_1").addClass("fadeIn");
  20. $(".p"+currentPage+"__f_2").addClass("fadeIn");
  21. },2000);
  22. setTimeout(function(){
  23. $(".p"+currentPage+"__f_avatar_1").addClass("fadeIn");
  24. },2500);
  25. setTimeout(function(){
  26. $(".p"+currentPage+"__f_bubble_1").addClass("bubble_show");
  27. },3000);
  28. }else{
  29. setTimeout(function(){
  30. $(".p"+currentPage+"__b_des").addClass("fadeIn");
  31. },1000);
  32. setTimeout(function(){
  33. $(".p"+currentPage+"__b_band").addClass("fadeIn");
  34. $(".p"+currentPage+"__b_1").addClass("fadeIn");
  35. $(".p"+currentPage+"__b_2").addClass("fadeIn");
  36. },1500);
  37. setTimeout(function(){
  38. $(".p"+currentPage+"__b_avatar_1").addClass("fadeIn");
  39. },2000);
  40. setTimeout(function(){
  41. $(".p"+currentPage+"__b_bubble_1").addClass("bubble_show");
  42. },2500);
  43. setTimeout(function(){
  44. $(".p"+currentPage+"__b_avatar_2").addClass("fadeIn");
  45. },3000);
  46. setTimeout(function(){
  47. $(".p"+currentPage+"__b_bubble_2").addClass("bubble_show");
  48. },3500);
  49. }
  50. break;
  51. case 3:
  52. var currentPage=pageNumber;
  53. if(isFlip[currentPage]===2){
  54. setTimeout(function(){
  55. $(".p"+currentPage+"__f_des").addClass("fadeIn");
  56. },1000);
  57. setTimeout(function(){
  58. $(".p"+currentPage+"__main").addClass("fadeIn");
  59. },1500);
  60. setTimeout(function(){
  61. $(".p"+currentPage+"__f_band").addClass("fadeIn");
  62. $(".p"+currentPage+"__f_1").addClass("fadeIn");
  63. $(".p"+currentPage+"__f_2").addClass("fadeIn");
  64. },2000);
  65. setTimeout(function(){
  66. $(".p"+currentPage+"__f_avatar_1").addClass("fadeIn");
  67. },2500);
  68. setTimeout(function(){
  69. $(".p"+currentPage+"__f_bubble_1").addClass("bubble_show");
  70. },3000);
  71. setTimeout(function(){
  72. $(".p"+currentPage+"__f_avatar_2").addClass("fadeIn");
  73. },3500);
  74. setTimeout(function(){
  75. $(".p"+currentPage+"__f_bubble_2").addClass("bubble_show");
  76. },4000);
  77. setTimeout(function(){
  78. $(".p"+currentPage+"__f_avatar_3").addClass("fadeIn");
  79. },4500);
  80. setTimeout(function(){
  81. $(".p"+currentPage+"__f_bubble_3").addClass("bubble_show");
  82. },5000);
  83. setTimeout(function(){
  84. $(".p"+currentPage+"__f_avatar_4").addClass("fadeIn");
  85. },5500);
  86. setTimeout(function(){
  87. $(".p"+currentPage+"__f_bubble_4").addClass("bubble_show");
  88. },6000);
  89. }else{
  90. setTimeout(function(){
  91. $(".p"+currentPage+"__b_des").addClass("fadeIn");
  92. },1000);
  93. setTimeout(function(){
  94. $(".p"+currentPage+"__b_band").addClass("fadeIn");
  95. $(".p"+currentPage+"__b_1").addClass("fadeIn");
  96. $(".p"+currentPage+"__b_2").addClass("fadeIn");
  97. },1500);
  98. setTimeout(function(){
  99. $(".p"+currentPage+"__b_avatar_1").addClass("fadeIn");
  100. },2000);
  101. setTimeout(function(){
  102. $(".p"+currentPage+"__b_bubble_1").addClass("bubble_show");
  103. },2500);
  104. setTimeout(function(){
  105. $(".p"+currentPage+"__b_avatar_2").addClass("fadeIn");
  106. },3000);
  107. setTimeout(function(){
  108. $(".p"+currentPage+"__b_bubble_2").addClass("bubble_show");
  109. },3500);
  110. setTimeout(function(){
  111. $(".p"+currentPage+"__b_avatar_3").addClass("fadeIn");
  112. },4000);
  113. setTimeout(function(){
  114. $(".p"+currentPage+"__b_bubble_3").addClass("bubble_show");
  115. },4500);
  116. }
  117. break;
  118. case 4:
  119. setTimeout(function(){
  120. $(".p4__t_1").addClass("riseUp");
  121. },500);
  122. setTimeout(function(){
  123. $(".p4__t_2").addClass("riseUp");
  124. },700);
  125. setTimeout(function(){
  126. $(".p4__t_3").addClass("riseUp");
  127. },900);
  128. setTimeout(function(){
  129. $(".p4__hourglass").addClass("fadeIn");
  130. },2500);
  131. setTimeout(function(){
  132. $(".p4__t_4").addClass("fadeIn");
  133. },3500);
  134. break;
  135. case 5:
  136. setTimeout(function(){
  137. $(".p5__t_1").addClass("riseUp");
  138. },500);
  139. setTimeout(function(){
  140. $(".p5__t_2").addClass("riseUp");
  141. },700);
  142. setTimeout(function(){
  143. $(".p5__t_3").addClass("riseUp");
  144. },900);
  145. setTimeout(function(){
  146. $(".p5__lantern").addClass("fadeIn swing");
  147. },1600);
  148. setTimeout(function(){
  149. $(".p5__t_4").addClass("riseUp");
  150. //$(".p5__lantern").addClass("swing");
  151. },2500);
  152. setTimeout(function(){
  153. $(".p5__act-wrap").addClass("fadeIn");
  154. $(".p5__print-wrap").on("touchstart",function(){
  155. $(".p5__scanner").css("display","none");
  156. $(".p5__scanner").removeClass("scanner");
  157. $(".p5__print").css("opacity","1");
  158. setTimeout(function(){
  159. showTheLast=1;
  160. screenForward();
  161. },500);
  162. });
  163. },3500);
  164. break;
  165. default :
  166. break;
  167. }
  168. }
  169. // 隐藏内容
  170. function hideContent(){
  171. var currentPage=pageNumber;
  172. if(isFlip[currentPage]===2){
  173. $(".p"+currentPage+"__of").css("opacity","0");
  174. }else{
  175. $(".p"+currentPage+"__ob").css("opacity","0");
  176. }
  177. }
  178. // 显示内容
  179. function showContent(){
  180. var currentPage=pageNumber;
  181. if(isFlip[currentPage]==1){
  182. setTimeout(function(){
  183. $(".p"+currentPage+"__of").css("opacity","1");
  184. },1000);
  185. }else{
  186. setTimeout(function(){
  187. $(".p"+currentPage+"__ob").css("opacity","1");
  188. },1000);
  189. }
  190. }
  191. // 翻转图片
  192. function flipCard(){
  193. var selectorMain=".p"+pageNumber+"__main";
  194. var selectorFI=".p"+pageNumber+"__f_img";
  195. var selectorBI=".p"+pageNumber+"__b_img";
  196. if(isFlip[pageNumber]===2){
  197. // 转到反面
  198. // 正面元素消失
  199. hideContent();
  200. // 背面元素显示
  201. showContent();
  202. // 照片翻转
  203. $(selectorMain).addClass("flip");
  204. if(bIsAndroid){
  205. $(selectorFI).addClass("fadeOut");
  206. $(selectorBI).addClass("fadeIn");
  207. }else{
  208. $(selectorBI).css("z-index","3");
  209. setTimeout(function(){
  210. $(selectorFI).css("display","none");
  211. },500);
  212. }
  213. // 背景变色
  214. $(".content-li").eq(pageNumber).addClass("fliped");
  215. // 显示指引
  216. setTimeout(function(){
  217. $(".notice-swipe-up").addClass("swipeMove");
  218. },1200);
  219. // 修改参数
  220. isFlip[pageNumber]=1;
  221. // 后面元素显示
  222. showElement();
  223. }else{
  224. // 转回正面
  225. // 背面元素消失
  226. hideContent();
  227. // 正面元素显示
  228. showContent();
  229. $(selectorMain).removeClass("flip");
  230. if(bIsAndroid){
  231. $(selectorFI).removeClass("fadeOut");
  232. $(selectorBI).removeClass("fadeIn");
  233. }else{
  234. $(selectorBI).css("z-index","1");
  235. setTimeout(function(){
  236. $(selectorFI).css("display","block");
  237. },500);
  238. }
  239. $(".content-li").eq(pageNumber).removeClass("fliped");
  240. isFlip[pageNumber]=2;
  241. }
  242. }
  243. // 滑动屏幕操作相关
  244. // 上一屏
  245. function screenBack(){
  246. var translateString,transitionString;
  247. pageNumber--;
  248. if(pageNumber<0){
  249. pageNumber=0;
  250. }
  251. currentDistance=screenHeight*pageNumber;
  252. translateString="translate3d(0, -"+currentDistance+"px, 0)";
  253. transitionString="all 0.5s ease-in";
  254. contentList.css({"-webkit-transform":translateString,"transform":translateString,"-webkit-transition":transitionString,"transition":transitionString});
  255. }
  256. // 下一屏
  257. function screenForward(){
  258. var translateString,transitionString;
  259. pageNumber++;
  260. if(!showTheLast && pageNumber===6){
  261. pageNumber=5;
  262. }
  263. if(pageNumber>6){
  264. pageNumber=6;
  265. }
  266. currentDistance=screenHeight*pageNumber;
  267. translateString="translate3d(0, -"+currentDistance+"px, 0)";
  268. transitionString="all 0.5s ease-in";
  269. contentList.css({"-webkit-transform":translateString,"transform":translateString,"-webkit-transition":transitionString,"transition":transitionString});
  270. // 显示元素
  271. showElement();
  272. // 显示引导
  273. if(pageNumber!==6 ){
  274. if(pageNumber===5){
  275. if(showTheLast){
  276. setTimeout(function(){
  277. $(".notice-swipe-up").addClass("swipeMove");
  278. },800);
  279. }
  280. }else{
  281. setTimeout(function(){
  282. $(".notice-swipe-up").addClass("swipeMove");
  283. },800);
  284. }
  285. }else{
  286. $(".notice-swipe-up").css("display","none");
  287. }
  288. }
  289. function startTouch(event) {
  290. if (!event.touches.length) {
  291. return;
  292. }
  293. tmpEndY = 0;
  294. var touch = event.touches[0];
  295. tmpStartY = touch.pageY;
  296. }
  297. function moveTouch(event) {
  298. event.preventDefault();
  299. if (!event.touches.length) {
  300. return;
  301. }
  302. var touch = event.touches[0];
  303. tmpEndY = touch.pageY;
  304. }
  305. // 触摸结束时判断执行上翻或者下翻
  306. function endTouch() {
  307. var endY = tmpEndY;
  308. var startY = tmpStartY;
  309. if (endY && endY !== startY && endY-startY<=-25) {
  310. console.log(pageNumber+":"+isFlip[pageNumber]);
  311. if(isFlip[pageNumber]<=1){
  312. screenForward();
  313. $(".notice-swipe-up").removeClass("swipeMove");
  314. }else{
  315. flipCard();
  316. }
  317. }else if(endY && endY !== startY && endY-startY>=25){
  318. console.log(pageNumber+":"+isFlip[pageNumber]);
  319. if(!isFlip[pageNumber] || isFlip[pageNumber]===2){
  320. screenBack();
  321. }else{
  322. flipCard();
  323. }
  324. }
  325. }
  326. // 滑动相关 end
  327. // 预加载图片
  328. function preImg(ele){
  329. var img_src=$(ele).css("background-image");
  330. img_src=img_src.split("(")[1].split(")")[0];
  331. var preImg=new Image();
  332. preImg.src=img_src;
  333. return preImg;
  334. }
  335. // 正式开始
  336. // 定义变量
  337. var screenHeight=$(window).height();
  338. var pageNumber=0;
  339. var currentDistance=0;
  340. var contentList=$(".content-list");
  341. var tmpEndY,tmpStartY;
  342. var isFlip=[0,2,2,2,0,0,0];
  343. var showTheLast=0;
  344. // 判断是否安卓
  345. var sUserAgent = navigator.userAgent.toLowerCase();
  346. var bIsAndroid = sUserAgent.match(/android/i) == "android";
  347. // 判断是否短屏手机
  348. var isShort;
  349. if($(window).height()<=416){
  350. isShort=true;
  351. }
  352. // 每一页高度自适应
  353. $(".content-li").each(function () {
  354. $(this).css("height", $(window).height());
  355. });
  356. // 长屏幕增加背景
  357. if(screenHeight>504){
  358. var gapHeight=(screenHeight-504)/2;
  359. $(".p5__extra").css({"top":-gapHeight,"height":gapHeight+5});
  360. $(".p6__extra").css({"top":-gapHeight,"height":gapHeight+5});
  361. }
  362. // 首屏动画
  363. setTimeout(function(){
  364. $(".p0__bubble").addClass("riseUp");
  365. },500);
  366. setTimeout(function(){
  367. $(".p0__t_1").addClass("riseUp");
  368. },800);
  369. setTimeout(function(){
  370. $(".p0__t_2").addClass("riseUp");
  371. },1000);
  372. setTimeout(function(){
  373. $(".p0__t_3").addClass("riseUp");
  374. },1200);
  375. // 绑定翻页
  376. contentList.on("touchstart",function(e){
  377. startTouch(e);
  378. });
  379. contentList.on("touchmove",function(e){
  380. moveTouch(e);
  381. });
  382. contentList.on("touchend",function(e){
  383. endTouch(e);
  384. });
  385. // 载入后显示指引
  386. setTimeout(function(){
  387. $(".notice-swipe-up").addClass("swipeMove");
  388. },500);
  389. // 显示分享浮层
  390. $(".p6__share-btn").on("tap",function(){
  391. $(".speaker").css("display","none");
  392. $(".share-mask").css({"display":"block","-webkit-transition":"display 0.3s ease-in","transition":"display 0.3s ease-in"});
  393. setTimeout(function(){
  394. $(".share-mask").css("display","none");
  395. $(".speaker").css("display","block");
  396. },1500);
  397. });
  398. // 控制声音
  399. $(".speaker").on("click",function(){
  400. var audioEle=document.querySelector("audio");
  401. if(audioEle.paused){
  402. $(".speaker").removeClass("speaker_muted");
  403. audioEle.play();
  404. }else{
  405. $(".speaker").addClass("speaker_muted");
  406. audioEle.pause();
  407. }
  408. });