main.js 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086
  1. $('html').css('height', '100%');
  2. var host = (function () {
  3. return window.location.protocol + "//" + window.location.host;
  4. })();
  5. (function(){
  6. if($('.button_null.button_vote').length >0 && $('.button_null.button_vote').text().indexOf('已经')) {
  7. $('input[type="radio"]').attr('disabled', 'disabled');
  8. $('input[type="checkbox"]').attr('disabled', 'disabled');
  9. }
  10. })();
  11. $('.thumbnail img').picLazyLoad({
  12. threshold:100
  13. });
  14. var specialId = (function () {
  15. var special_id = $('body').attr('data-special_id');
  16. return special_id;
  17. })();
  18. var Comment_type = '';
  19. var need_scroll = true;
  20. var event = function (obj, eventType, callback) {
  21. obj.live(eventType, callback);
  22. };
  23. var get_ajax = function (url, callback) {
  24. $.ajax({
  25. type: "get",
  26. async: false,
  27. url: url,
  28. dataType: "jsonp",
  29. jsonp: "callback",
  30. jsonpCallback: "flightHandler",
  31. success: callback
  32. });
  33. };
  34. var GetQueryString = function (name) {
  35. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
  36. var r = window.location.search.substr(1).match(reg);
  37. if (r != null)return unescape(r[2]);
  38. return null;
  39. };
  40. var statShow = function () {
  41. if ($('.percentage').length > 0) {
  42. setTimeout(function () {
  43. for (var i = 0; i < $('.percentage').length; i++) {
  44. var num = $('.percentage')[i].innerHTML;
  45. $('.stat')[i].style.width = num;
  46. }
  47. }, 300);
  48. clearInterval(a);
  49. }
  50. };
  51. var a = setInterval(statShow, 10);
  52. var Vote = function (type) {
  53. var _self = this;
  54. this.type = type;
  55. this.answer = [];
  56. this.getAnswers = function () {
  57. return this.answer;
  58. };
  59. this.obj = $('input[name="submit_vote"]');
  60. this.M = function () {
  61. var options = function () {
  62. var options = [];
  63. for (var i = 0; i < $('.vote_options label').length; i++) {
  64. var option = $.trim($('.vote_options label').eq(i).text());
  65. options.push(option);
  66. }
  67. return options;
  68. };
  69. var sum_num = function (datas) {
  70. var sum = 0;
  71. for (var i = 0; i < datas.length; i++) {
  72. sum += parseFloat(datas[i]);
  73. }
  74. return sum;
  75. };
  76. return {
  77. result: function (data) {
  78. var option_items = options();
  79. var sum = sum_num(data);
  80. var vote_res = [];
  81. for (var i = 0; i < data.length; i++) {
  82. var g = {};
  83. g.name = option_items[i];
  84. g.num = parseInt(data[i]);
  85. g.percentage = data[i] ? Math.round(data[i] / sum * 100) : 0;
  86. vote_res.push(g);
  87. }
  88. return vote_res;
  89. }
  90. }
  91. };
  92. this.V = function (datas) {
  93. var resData = datas;
  94. var html = '<div class="results">';
  95. for (var i = 0; i < resData.length; i++) {
  96. html += '<div class="result">' +
  97. '<div class="result_option">' + resData[i].name + '</div>' +
  98. '<div class="status">' +
  99. '<div class="status_line">' +
  100. '<div class="stat"></div>' +
  101. '<div class="status_bg"></div>' +
  102. '</div>' +
  103. '<span class="num">' + resData[i].num + '票</span>' +
  104. '<span class="percentage">' + resData[i].percentage + '%</span>' +
  105. '</div>' +
  106. '</div>';
  107. }
  108. html += '</div>';
  109. return html;
  110. };
  111. this.C = function () {
  112. event(_self.obj, 'change', function () {
  113. switch (_self.type) {
  114. case 0:
  115. case 1 : {
  116. _self.answer = [];
  117. $.each(_self.obj, function () {
  118. if (this.checked) {
  119. _self.answer.push($(this).val());
  120. }
  121. });
  122. break;
  123. }
  124. case 2: {
  125. var val = $(this).val();
  126. if ($(this).prop('checked')) {
  127. if (_self.answer.length >= 2) {
  128. for (var g = 0; g < _self.obj.length; g++) {
  129. if (_self.obj.eq(g).val() == _self.answer[0]) {
  130. _self.obj.eq(g).prop('checked', false);
  131. _self.answer.splice(0, 1);
  132. _self.answer.push(val);
  133. break;
  134. }
  135. }
  136. }
  137. else {
  138. _self.answer = [];
  139. $.each(_self.obj, function () {
  140. if (this.checked) {
  141. _self.answer.push($(this).val());
  142. }
  143. });
  144. }
  145. }
  146. else {
  147. _self.answer = [];
  148. $.each(_self.obj, function () {
  149. if (this.checked) {
  150. _self.answer.push($(this).val());
  151. }
  152. });
  153. }
  154. }
  155. }
  156. });
  157. };
  158. };
  159. var Question = function (obj, handleType) {
  160. this.obj = obj;
  161. this.handleType = handleType;
  162. this.answer = [];
  163. this.getAnswer = function () {
  164. return this.answer;
  165. };
  166. this.C = function () {
  167. var _self = this;
  168. _self.obj.on('change', function () {
  169. switch (_self.handleType) {
  170. case 0:
  171. case 1 : {
  172. _self.answer = [];
  173. $.each(_self.obj, function () {
  174. if (this.checked) {
  175. _self.answer.push($(this).val());
  176. }
  177. });
  178. break;
  179. }
  180. case 2: {
  181. var val = $(this).val();
  182. if ($(this).prop('checked')) {
  183. if (_self.answer.length >= 2) {
  184. for (var g = 0; g < _self.obj.length; g++) {
  185. if (_self.obj.eq(g).val() == _self.answer[0]) {
  186. _self.obj.eq(g).prop('checked', false);
  187. _self.answer.splice(0, 1);
  188. _self.answer.push(val);
  189. break;
  190. }
  191. }
  192. }
  193. else {
  194. _self.answer = [];
  195. $.each(_self.obj, function () {
  196. if (this.checked) {
  197. _self.answer.push($(this).val());
  198. }
  199. });
  200. }
  201. }
  202. else {
  203. _self.answer = [];
  204. $.each(_self.obj, function () {
  205. if (this.checked) {
  206. _self.answer.push($(this).val());
  207. }
  208. });
  209. }
  210. break;
  211. }
  212. }
  213. });
  214. }
  215. };
  216. var QuestionList = function () {
  217. var question_items = [];
  218. (function (question_items) {
  219. var questions = $('.question').length;
  220. var num = 0;
  221. var question_nums = 'q' + num;
  222. for (var j = 0; j < questions; j++) {
  223. question_nums = new Question($('input[name="question' + num + '"]'), parseInt($('.question_type').eq(j).attr('data-type')));
  224. question_items.push(question_nums);
  225. question_nums.C();
  226. num++;
  227. }
  228. })(question_items);
  229. this.getAnswers = function () {
  230. var answers = [];
  231. for (var i = 0; i < question_items.length; i++) {
  232. if (question_items[i].getAnswer().length == 0) {
  233. continue;
  234. }
  235. var question = {};
  236. question.index = i;
  237. question.answer = question_items[i].getAnswer();
  238. answers.push(question);
  239. }
  240. return answers;
  241. };
  242. };
  243. var ReplyItem = function (comment, members) {
  244. var proxy = function () {
  245. var getNickName = function (userId) {
  246. for (var i = 0; i < members.length; i++) {
  247. if (members[i]['member_id'] == userId) {
  248. return members[i]['nickname'];
  249. }
  250. }
  251. };
  252. var getAvatar = function (userId) {
  253. for (var i = 0; i < members.length; i++) {
  254. if (members[i]['member_id'] == userId) {
  255. return members[i]['avatar'];
  256. }
  257. }
  258. };
  259. var getTime = function (time) {
  260. var date = '';
  261. var location = parseInt(new Date().getTime() / 1000);
  262. var diffHour = parseInt((location - time) / 60 / 60);
  263. var diffMinutes = parseInt((location - time) / 60);
  264. if (diffHour <= 0) {
  265. if (diffMinutes >= 0 && diffMinutes < 5) {
  266. date = "刚刚";
  267. }
  268. else {
  269. date = diffMinutes + "分钟前";
  270. }
  271. }
  272. if (diffHour < 24 && diffHour > 0) {
  273. date = diffHour + '小时前';
  274. }
  275. if (diffHour >= 24) {
  276. var milliseconds = time * 1000;//秒变微秒
  277. var dat = new Date(milliseconds);//生成日期
  278. var month = dat.getMonth() + 1; //取得月
  279. var date1 = dat.getDate(); //取得天
  280. var hour = dat.getHours();//取得小时
  281. var minutes = dat.getMinutes();//取得分钟
  282. if (hour < 10) {
  283. hour = '0' + dat.getHours();
  284. }
  285. if (minutes < 10) {
  286. minutes = '0' + dat.getMinutes();
  287. }
  288. date = month + '月' + date1 + '日' + hour + ':' + minutes;
  289. }
  290. return date;
  291. };
  292. return {
  293. getNickName: getNickName,
  294. getAvatar: getAvatar,
  295. getTime: getTime
  296. }
  297. };
  298. var commentdata = comment;
  299. var sub = '';
  300. var subnum = 10;
  301. if (comment) {
  302. var defaultSubNum = comment['sub_count'];
  303. }
  304. var load_btn = '';
  305. var loadpage = 2;
  306. var isLike = function () {
  307. var like = '';
  308. if (commentdata['supported'] == false) {
  309. like = '<a href="javascript:void(0)" class="like_btn" data-comment_id="' + commentdata['comment_id'] + '">' +
  310. '<span class="like_num">' + commentdata['likes'] + '</span><span class="like_icon_null"></span></a>';
  311. }
  312. else {
  313. like = '<a href="javascript:void(0)" class="like_btn active" data-comment_id="' + commentdata['comment_id'] + '">' +
  314. '<span class="like_num">' + commentdata['likes'] + '</span><span class="like_icon_null like_icon"></span></a>';
  315. }
  316. return like;
  317. };
  318. var parentHTML = function () {
  319. var html = '<div class="comment_item parent_reply" data-comment_id="' + commentdata['comment_id'] + '">' +
  320. '<div class="subject">' +
  321. '<div class="subject_box">' +
  322. '<div class="subject_image">' +
  323. '<img src="' + proxy().getAvatar(commentdata['user_id']) + '" alt="熊猫美妆">' +
  324. '</div>' +
  325. '<div class="subject_name">' +
  326. '<p class="name reply_people" data-parent="true" data-comment_id="' + commentdata['comment_id'] + '">' + proxy().getNickName(commentdata['user_id']) + '</p>' +
  327. '<p class="time">' + proxy().getTime(commentdata['addtime']) + '</p>' +
  328. '</div>' +
  329. '</div>' +
  330. '<div class="like">' + isLike() +
  331. '</div>' +
  332. '</div>' +
  333. '<p class="msg">' + commentdata['content'] + sub +
  334. '</p>' + load_btn +
  335. '</div>';
  336. return html;
  337. };
  338. var subHTML = function (comment) {
  339. var subHtml = '<p class="reply">' +
  340. '<span class="reply_people" data-comment_id="' + comment['comment_id'] + '">' + proxy().getNickName(comment['user_id']) + '</span>' +
  341. '回复' +
  342. '<span class="reply_people" data-comment_id="' + comment['comment_id'] + '" data-response_id="' + comment['response_id'] + '">' +
  343. proxy().getNickName(comment['to_user']) + '</span>:' + comment['content'] + '</p>';
  344. return subHtml;
  345. };
  346. var empty = function () {
  347. var empty = '<p class="reply_empty">精彩评论虚位以待</p>';
  348. return empty;
  349. };
  350. return {
  351. exportHTML: function () {
  352. return parentHTML();
  353. },
  354. addSub: function (comment) {
  355. sub += subHTML(comment);
  356. },
  357. insert: function (comment) {
  358. return subHTML(comment);
  359. },
  360. empty: function () {
  361. $('.comment_list').append(empty());
  362. },
  363. addLoadBtn: function () {
  364. load_btn = '<div class="button_load_more" data-page="' + loadpage + '">查看更多评论</div>';
  365. },
  366. getLoadMore: function () {
  367. return defaultSubNum > subnum;
  368. },
  369. oneItem: subHTML
  370. }
  371. };
  372. var ReplyList = function () {
  373. var created = function (replys) {
  374. var replyList = [];
  375. var replyIndex = replyList.length;
  376. if (!replys || replys['comments'].length == 0) {
  377. return;
  378. }
  379. for (var i = 0; i < replys['comments'].length; i++) {
  380. if (replys['comments'][i]['response_id'] == 0) {
  381. replyList.push(new ReplyItem(replys['comments'][i], replys['members']));
  382. replyIndex++;
  383. }
  384. else {
  385. replyList[replyIndex - 1].addSub(replys['comments'][i]);
  386. }
  387. }
  388. return replyList;
  389. };
  390. var exportHTML = function (replyItem) {
  391. var datas = created(replyItem);
  392. if ($('.reply_empty').length > 0) {
  393. $('.reply_empty').css('display', 'none');
  394. }
  395. for (var i = 0; i < datas.length; i++) {
  396. if (datas[i].getLoadMore()) {
  397. datas[i].addLoadBtn();
  398. }
  399. $('.comment_list').append(datas[i].exportHTML());
  400. }
  401. };
  402. var specialReply = function (replyItem) {
  403. var datas = created(replyItem);
  404. if ($('.reply_empty').length > 0) {
  405. $('.reply_empty').css('display', 'none');
  406. }
  407. for (var i = 0; i < datas.length; i++) {
  408. $('.comment_list').prepend(datas[i].exportHTML());
  409. }
  410. };
  411. var curpage = 1;
  412. var isLoad = false;
  413. var getDate = function () {
  414. isLoad = true;
  415. $('.loader').show();
  416. var url = host + '/mobile/index.php?act=member_ugc&op=comments&client_type=ajax&special_id=' + specialId + '&curpage=' + curpage;
  417. get_ajax(url, function (data) {
  418. $('.loader').hide();
  419. isLoad = false;
  420. if (data.code !== 200) {
  421. alert(data.message);
  422. }
  423. else {
  424. var replyDatas = data.datas;
  425. if (replyDatas['comments'].length == 0) {
  426. $('.comment_list').append(new ReplyItem().empty());
  427. return;
  428. }
  429. exportHTML(replyDatas);
  430. if (need_scroll && GetQueryString('need_scroll')) {
  431. need_scroll = false;
  432. $('.comment_label').trigger('click');
  433. }
  434. if (replyDatas.mobile_page['hasmore'] == true) {
  435. curpage++;
  436. $(window).on('scroll', loadEvent);
  437. }
  438. else {
  439. $(window).unbind('scroll',loadEvent);
  440. }
  441. }
  442. });
  443. };
  444. var loadEvent = function () {
  445. var scrollTop = $(this).scrollTop();
  446. var scrollHeight = $(document).height();
  447. var windowHeight = $(this).height();
  448. if (scrollTop + windowHeight == scrollHeight && isLoad == false) {
  449. getDate();
  450. }
  451. };
  452. (function () {
  453. getDate();
  454. })();
  455. return {
  456. exportHTML: exportHTML,
  457. specialReply: specialReply
  458. }
  459. };
  460. var CommentsBox = function () {
  461. var maxSize = 150;
  462. var show = function () {
  463. $('.pop').show();
  464. $('.answer_comments').show();
  465. //$('#comments').focus();
  466. $(document).on("touchmove", function (event) {
  467. event.preventDefault();
  468. });
  469. };
  470. var close = function () {
  471. $('.pop').hide();
  472. $('.answer_comments').hide();
  473. $('#comments').blur().val('');
  474. $('.surplus').html(maxSize);
  475. $(document).off("touchmove");
  476. };
  477. var surplusInput = function () {
  478. event($('#comments'), 'input', function () {
  479. var val = $(this).val().length;
  480. var surplus = 0;
  481. if (val <= maxSize) {
  482. surplus = maxSize - val;
  483. }
  484. else {
  485. $(this).val($(this).val().substring(0, maxSize));
  486. }
  487. $('.surplus').html(surplus);
  488. })
  489. };
  490. var res = {
  491. comment_id: '',
  492. response_id: ''
  493. };
  494. event($('.reply_people'), 'click', function () {
  495. if ($(this).hasClass('name')) {
  496. $(this).parents('.comment_item').addClass('insert');
  497. }
  498. else {
  499. $(this).parent('p').addClass('insert');
  500. }
  501. res.response_id = '';
  502. res.comment_id = '';
  503. var to_user_name = $(this).text();
  504. commentsBox.setPlaceHolder('回复' + to_user_name).show();
  505. Comment_type = 'res_people';
  506. if ($(this).attr('data-response_id') !== '' || $(this).attr('data-response_id')) {
  507. res.response_id = $(this).attr('data-response_id');
  508. res.comment_id = $(this).attr('data-comment_id');
  509. }
  510. else {
  511. res.comment_id = $(this).attr('data-comment_id');
  512. }
  513. });
  514. var submitComments = function () {
  515. var url = '';
  516. event($('.comments_submit'), 'click', function () {
  517. if ($('#comments').val() == '') {
  518. $('#comments').focus();
  519. return;
  520. }
  521. $('.loader').show();
  522. var textVal = $('#comments').val();
  523. if (Comment_type == 'special_id') {
  524. url = host + '/mobile/index.php?act=member_ugc&op=comment&client_type=ajax&special_id=' + specialId + '&content=' + encodeURI(textVal);
  525. get_ajax(url, function (data) {
  526. $('.loader').hide();
  527. if (data.code !== 200) {
  528. alert(data.message);
  529. return;
  530. }
  531. replyList.specialReply(data.datas);
  532. commentsBox.close();
  533. $('.handle_result').text('评论成功').addClass('show');
  534. setTimeout(function () {
  535. $('.handle_result').removeClass('show');
  536. }, 3100);
  537. })
  538. }
  539. else {
  540. if (res.response_id) {
  541. url = host + '/mobile/index.php?act=member_ugc&op=comment&client_type=ajax&special_id=' + specialId + '&content=' + encodeURI(textVal) + '&response_id=' + res.response_id + '&comment_id=' + res.comment_id;
  542. }
  543. else {
  544. url = host + '/mobile/index.php?act=member_ugc&op=comment&client_type=ajax&special_id=' + specialId + '&content=' + encodeURI(textVal) + '&comment_id=' + res.comment_id;
  545. }
  546. get_ajax(url, function (data) {
  547. $('.loader').hide();
  548. if (data.code !== 200) {
  549. alert(data.message);
  550. return;
  551. }
  552. var insertData = data.datas;
  553. var sub = new ReplyItem(insertData['comments'][0], insertData['members']);
  554. if ($('.insert').hasClass('comment_item')) {
  555. if ($('.insert .reply').length > 0) {
  556. $('.insert .reply').last().after(sub.insert(insertData['comments'][0], insertData['members']));
  557. }
  558. else {
  559. $('.insert .msg').after(sub.insert(insertData['comments'][0], insertData['members']));
  560. }
  561. }
  562. else {
  563. $('.insert').after(sub.insert(insertData['comments'][0], insertData['members']));
  564. }
  565. $('.insert').removeClass('insert');
  566. commentsBox.close();
  567. $('.handle_result').text('评论成功').addClass('show');
  568. setTimeout(function () {
  569. $('.handle_result').removeClass('show');
  570. }, 3100);
  571. })
  572. }
  573. });
  574. };
  575. var setPlaceHolder = function (content) {
  576. $('#comments').attr('placeholder', content);
  577. return this;
  578. };
  579. (function () {
  580. // close();
  581. surplusInput();
  582. submitComments();
  583. // inputFocus();
  584. })();
  585. return {
  586. show: show,
  587. setPlaceHolder: setPlaceHolder,
  588. close: close
  589. }
  590. };
  591. var PageVideo = function () {
  592. var createDom = function (videosrc, videoposter) {
  593. var a = document.createElement('video');
  594. a.poster = videoposter;
  595. a.src = videosrc;
  596. a.setAttribute('x5-video-player-type','h5');
  597. a.setAttribute('x5-video-player-fullscreen','false');
  598. a.className = 'video_play';
  599. return a;
  600. };
  601. this.append = function () {
  602. var play_icon = '';
  603. if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
  604. } else if (/(Android)/i.test(navigator.userAgent)) {
  605. play_icon = '<span class="play_icon"></span>';
  606. } else {}
  607. for (var i = 0; i < $('.video_box').length; i++) {
  608. var videoSrc = $('.video_box').eq(i).attr('data-src');
  609. var videoVideoposter = $('.video_box').eq(i).attr('data-poster');
  610. $('.video_box').eq(i).append(createDom(videoSrc, videoVideoposter)).append(play_icon);
  611. }
  612. };
  613. };
  614. event($('.play_icon'),'touchstart',function(){
  615. var _self = $(this);
  616. var index = $('.play_icon').index(this);
  617. document.getElementsByClassName('video_play')[index].addEventListener('play',function(){
  618. $('.bottom_flex').hide();
  619. _self.hide();
  620. },false);
  621. document.getElementsByClassName('video_play')[index].addEventListener('pause',function(){
  622. $('.bottom_flex').show();
  623. _self.show();
  624. },false);
  625. $('.video_play').get(index).play();
  626. var fullscreen = function(elem) {
  627. var prefix = 'webkit';
  628. if ( elem[prefix + 'EnterFullScreen'] ) {
  629. return prefix + 'EnterFullScreen';
  630. } else if( elem[prefix + 'RequestFullScreen'] ) {
  631. return prefix + 'RequestFullScreen';
  632. }
  633. return false;
  634. };
  635. function autoFullScrenn(v){
  636. var ua = navigator.userAgent.toLowerCase();
  637. var Android = String(ua.match(/android/i)) == "android";
  638. if(!Android) return;//非android系统不使用;
  639. var video = v,doc = document;
  640. var fullscreenvideo = fullscreen(doc.createElement("video"));
  641. if(!fullscreen) {
  642. alert("不支持全屏模式");
  643. return;
  644. }
  645. video.addEventListener("webkitfullscreenchange",function(e){
  646. if(!doc.webkitIsFullScreen){//退出全屏暂停视频
  647. this.pause();
  648. }
  649. }, false);
  650. video.addEventListener("click", function(){
  651. this.play();
  652. video[fullscreenvideo]();
  653. }, false);
  654. video.addEventListener('ended',function(){
  655. doc.webkitCancelFullScreen(); //播放完毕自动退出全屏
  656. },false);
  657. }
  658. autoFullScrenn(document.getElementsByClassName('video_play')[index]);
  659. });
  660. var vote = new Vote(parseInt($('.vote_type').attr('data-type')));
  661. vote.C();
  662. var Pagevideo = new PageVideo();
  663. Pagevideo.append();
  664. var questionList = new QuestionList();
  665. var commentsBox = new CommentsBox();
  666. var replyList = new ReplyList();
  667. $(window).on('scroll',function(){
  668. var top = $(this).scrollTop();
  669. $('.answer_comments').css('top',top+360);
  670. $('.pop').css('top',top);
  671. });
  672. event($('.bonus_item'), 'click', function () {
  673. if ($(this).hasClass('dis')) {
  674. return;
  675. }
  676. for (var i = 0; i < $('.bonus_item').length; i++) {
  677. if ($('.bonus_item').eq(i).hasClass('dis')) {
  678. continue;
  679. }
  680. else {
  681. $('.bonus_item').eq(i).removeClass('active');
  682. }
  683. }
  684. $(this).addClass('active');
  685. });
  686. event($('#discount'), 'change', function () {
  687. var val = $(this).val();
  688. var select_option = 0;
  689. $('.bonus_item').removeClass('dis').removeClass('active');
  690. for (var i = 0; i < $('#discount option').length; i++) {
  691. if ($('#discount option').eq(i).attr('value') == val) {
  692. select_option = i;
  693. break;
  694. }
  695. }
  696. for (var j = 0; j < $('.bonus_box .money').length; j++) {
  697. if (parseFloat($('.bonus_box .money').eq(j).text()) > parseFloat($('#discount option').eq(select_option).attr('data-money'))) {
  698. $('.bonus_item').eq(j).addClass('dis');
  699. }
  700. }
  701. });
  702. event($('.btn_appreciate'), 'click', function () {
  703. $('.loader').show();
  704. if (from_app && !logined) {
  705. call_native_handler('on_native_click', '{"action":"login"}', function (data) {
  706. $('.loader').hide();
  707. var jsdata = JSON.parse(data);
  708. if (!jsdata.login) {
  709. return;
  710. }
  711. else {
  712. logined = true;
  713. var url = host + '/mobile/index.php?act=member_ugc&op=mine_bonus&client_type=ajax';
  714. get_ajax(url, function (data) {
  715. $('.loader').hide();
  716. if (data.code !== 200) {
  717. alert(data.message);
  718. return;
  719. }
  720. var datas = data.datas['bonus_rate'];
  721. var html = '';
  722. for (var i = 0; i < datas.length; i++) {
  723. html += '<option value="' + datas[i].rate + '" data-money="' + datas[i].total + '">' + datas[i].rate + '%</option>';
  724. }
  725. ;
  726. $('.appreciate_pop').removeClass('close').addClass('show');
  727. $('#discount').append(html).trigger('change');
  728. });
  729. }
  730. });
  731. }
  732. else {
  733. $('.loader').hide();
  734. var url = host + '/mobile/index.php?act=member_ugc&op=mine_bonus&client_type=ajax';
  735. get_ajax(url, function (data) {
  736. $('.loader').hide();
  737. if (data.code !== 200) {
  738. alert(data.message);
  739. return;
  740. }
  741. var datas = data.datas['bonus_rate'];
  742. var html = '';
  743. for (var i = 0; i < datas.length; i++) {
  744. html += '<option value="' + datas[i].rate + '" data-money="' + datas[i].total + '">' + datas[i].rate + '%</option>';
  745. }
  746. ;
  747. $('.appreciate_pop').removeClass('close').addClass('show');
  748. $('#discount').append(html).trigger('change');
  749. });
  750. }
  751. });
  752. event($('#close_appreciate'), 'click', function () {
  753. $('#discount').empty();
  754. $('.bonus_item').removeClass('active').removeClass('dis');
  755. $('.live_msg').val('');
  756. $('.appreciate_pop').removeClass('show').addClass('close');
  757. });
  758. event($('#submit_appreciate'), 'click', function () {
  759. var rate = $('#discount').val();
  760. var money = $('.bonus_item.active .money').text();
  761. var content = $('#live_msg').val();
  762. var url = host + '/mobile/index.php?act=member_ugc&op=appreciate&client_type=ajax&rate=' + rate + '&money=' + money + '&content=' + encodeURI(content) + '&special_id=' + specialId;
  763. get_ajax(url, function (data) {
  764. console.log(data);
  765. if (data.code !== 200) {
  766. alert(data.message);
  767. return;
  768. }
  769. $('.handle_result').text('打赏成功').addClass('show');
  770. $('#close_appreciate').trigger('click');
  771. setTimeout(function () {
  772. $('.handle_result').removeClass('show');
  773. window.location.reload();
  774. }, 3100);
  775. })
  776. });
  777. event($('.msg_btn'), 'click', function () {
  778. if (from_app && !logined) {
  779. call_native_handler('on_native_click', '{"action":"login"}', function (data) {
  780. var jsdata = JSON.parse(data);
  781. if (!jsdata.login) {
  782. return;
  783. }
  784. else {
  785. logined = true;
  786. commentsBox.setPlaceHolder('我来说两句').show();
  787. Comment_type = 'special_id';
  788. }
  789. });
  790. }
  791. else {
  792. commentsBox.setPlaceHolder('我来说两句').show();
  793. Comment_type = 'special_id';
  794. }
  795. });
  796. $('#submit_btn').on('click', function () {
  797. var _self = $(this);
  798. $('.loader').show();
  799. $(this).addClass('button_null');
  800. var allAnswers = {};
  801. var voteAnswers = vote.getAnswers() || [];
  802. var resAnswers = questionList.getAnswers() || [];
  803. if ($('.vote').length > 0 && voteAnswers.length == 0) {
  804. $(this).removeClass('button_null');
  805. $('.loader').hide();
  806. alert('亲!请完成投票');
  807. return;
  808. }
  809. if ($('.vote').length > 0) {
  810. allAnswers.vote = voteAnswers;
  811. }
  812. if ($('.question_list').length > 0) {
  813. allAnswers.question = resAnswers;
  814. }
  815. var url = host + "/mobile/index.php?act=special&op=submit&client_type=ajax&special_id=" + specialId + '&content=' + encodeURI(JSON.stringify(allAnswers));
  816. get_ajax(url, function (data) {
  817. console.log(data);
  818. $('.loader').hide();
  819. if (data.code !== 200) {
  820. alert(data.message);
  821. $('.loader').hide();
  822. return;
  823. }
  824. _self.css('display', 'none');
  825. if ($('.vote').length <= 0 && $('.question_list').length <= 0) {
  826. if (data.datas['bonus_url'] !== "") {
  827. $('.pop').show();
  828. $('.bonus_label').html('感谢您的参与<br/>恭喜获得'+data.datas['amount']+'元红包');
  829. $('.bonus_page').attr('href', data.datas["bonus_url"]).addClass('fade-in').show();
  830. $('.close_icon').addClass('rotate').show();
  831. $('.bonus_page img').attr('src', data.datas["sender_avatar"]);
  832. }
  833. }
  834. if ($('.vote').length > 0 && $('.question_list').length <= 0) {
  835. $('.vote_options').css('display', 'none');
  836. var voteRes = vote.M().result(data.datas['vote_result']);
  837. $('.vote_pro').after(vote.V(voteRes));
  838. statShow();
  839. if (data.datas['bonus_url'] !== "") {
  840. $('.pop').show();
  841. $('.bonus_label').html('感谢您的参与<br/>恭喜获得'+data.datas['amount']+'元红包');
  842. $('.bonus_page').attr('href', data.datas["bonus_url"]).addClass('fade-in').show();
  843. $('.close_icon').addClass('rotate').show();
  844. $('.bonus_page img').attr('src', data.datas["sender_avatar"]);
  845. }
  846. }
  847. if ($('.question_list').length > 0) {
  848. if($('.vote').length > 0) {
  849. $('.vote_options').css('display', 'none');
  850. var voteRes = vote.M().result(data.datas['vote_result']);
  851. $('.vote_pro').after(vote.V(voteRes));
  852. statShow();
  853. }
  854. var answerDiff = data.datas['answer_diff'];
  855. var correct = 0;
  856. var error = 0;
  857. var result_msg = '';
  858. for (var i = 0; i < answerDiff.length; i++) {
  859. var diff_correct = answerDiff[i]['origin'];
  860. var correct_answers = [];
  861. for(var j=0;j<diff_correct.length;j++) {
  862. var answer_num = String.fromCharCode(diff_correct[j]+65);
  863. correct_answers.push(answer_num);
  864. }
  865. $('.question_options').eq(i).after('<div class="right_answer">正确答案:'+correct_answers.join('')+'</div>');
  866. if (answerDiff[i]['correct']) {
  867. $('.question_options').eq(i).addClass('state_right');
  868. correct++;
  869. }
  870. else {
  871. $('.question_options').eq(i).addClass('state_error');
  872. error++;
  873. }
  874. }
  875. if(correct == 0) {
  876. result_msg = '很抱歉!您全答错了,您需要加把劲哦!';
  877. $('.question_result p').text(result_msg);
  878. $('.question_result').addClass('show');
  879. $('.question_result .close').on('click',function(){
  880. $('.question_result').removeClass('show');
  881. });
  882. return;
  883. }
  884. if (error == 0 && correct == answerDiff.length) {
  885. result_msg = '恭喜您!您全答对了!<br />获得'+data.datas['amount']+'元红包';
  886. }
  887. if (error !== 0 && correct > 0 && correct < answerDiff.length){
  888. result_msg = '恭喜你,答对了'+correct+'道题<br/>获得'+data.datas['amount']+'元红包';
  889. }
  890. if (data.datas['bonus_url'] !== "") {
  891. $('.pop').show();
  892. $('.bonus_label').html(result_msg);
  893. $('.bonus_page').attr('href', data.datas["bonus_url"]).addClass('fade-in').show();
  894. $('.close_icon').addClass('rotate').show();
  895. $('.bonus_page img').attr('src', data.datas["sender_avatar"]);
  896. }
  897. }
  898. $('.bonus_page').on('click',function () {
  899. });
  900. $('input[type="radio"]').attr('disabled', 'disabled');
  901. $('input[type="checkbox"]').attr('disabled', 'disabled');
  902. });
  903. });
  904. event($('.like_btn'), 'click', function () {
  905. $('.loader').show();
  906. var url = '';
  907. var $this = $(this);
  908. if ($(this).attr('data-comment_id')) {
  909. var comment_id = $(this).attr('data-comment_id');
  910. url = host + '/mobile/index.php?act=member_ugc&op=support&client_type=ajax&special_id=' + specialId + '&comment_id=' + comment_id;
  911. get_ajax(url, function (data) {
  912. $('.loader').hide();
  913. if (data.code !== 200) {
  914. alert(data.message);
  915. $('.loader').hide();
  916. return;
  917. }
  918. var localLike = $this.find('.like_num').text();
  919. if (data.datas['supported'] == true) {
  920. $this.find('.like_num').text(parseInt(localLike) + 1);
  921. }
  922. else {
  923. $this.find('.like_num').text(parseInt(localLike) - 1);
  924. }
  925. $this.toggleClass('active');
  926. $this.find('.like_icon_null').toggleClass('like_icon');
  927. });
  928. }
  929. else {
  930. url = host + '/mobile/index.php?act=member_ugc&op=support&client_type=ajax&special_id=' + specialId;
  931. get_ajax(url, function (data) {
  932. $('.loader').hide();
  933. if (data.code !== 200) {
  934. alert(data.message);
  935. $('.loader').hide();
  936. return;
  937. }
  938. $this.find('.like_icon_null').toggleClass('like_icon');
  939. })
  940. }
  941. });
  942. $('.close_icon').on('click', function () {
  943. $('.pop').hide();
  944. $('.bonus_page').hide();
  945. $('.close_icon').hide();
  946. });
  947. event($('.button_load_more'), 'click', function () {
  948. var _self = $(this);
  949. $('.loader').show();
  950. var comment_id = $(this).parent('.comment_item').attr('data-comment_id');
  951. var curpage = $(this).attr('data-page');
  952. var url = host + '/mobile/index.php?act=member_ugc&op=comments&client_type=ajax&special_id=' + specialId + '&comment_id=' + comment_id + '&curpage=' + curpage + '&page=4';
  953. get_ajax(url, function (data) {
  954. $('.loader').hide();
  955. if (data.code !== 200) {
  956. alert(data.message);
  957. return;
  958. }
  959. var items = '';
  960. var datas = data.datas['comments'];
  961. for (var i = 0; i < datas.length; i++) {
  962. items += new ReplyItem([], data.datas['members']).oneItem(datas[i]);
  963. }
  964. _self.before(items);
  965. if (!data['datas'].mobile_page['hasmore']) {
  966. _self.css('display', 'none');
  967. }
  968. else {
  969. _self.attr('data-page', parseInt(curpage) + 1);
  970. }
  971. })
  972. });
  973. event($('.comment_label'), 'click', function () {
  974. // var container = $(window).offset().top,
  975. var scrollTo = $('.comment').offset().top;
  976. $(window).scrollTop(scrollTo);
  977. });
  978. event($('.pop'), 'click', function () {
  979. commentsBox.close();
  980. });
  981. event($('.share_icon_null'), 'touchend', function () {
  982. function addslashes (str) {
  983. return (str + '').replace(/[\\"']/g, '\\$&').replace(/\u0000/g, '\\0');
  984. }
  985. var share_title = addslashes(title);
  986. var share_sub_title = addslashes(sub_title);
  987. call_native_handler('on_native_click', '{"action":"share_page","params":{"title":"' + share_title + '","sub_title":"' + share_sub_title + '","img_url":"' + img_url + '","url":"' + url + '"}}');
  988. });
  989. register_js_hander('onKeyboardClose', function (data, callback) {
  990. commentsBox.close();
  991. });
  992. function app() {
  993. var app = navigator.userAgent.toLowerCase(),//判断设备
  994. app_nav = navigator.appVersion.toLowerCase(),
  995. href = '';
  996. if (app_nav.indexOf('iphone') > -1 && app.indexOf('iphone')) {
  997. href = 'http://a.app.qq.com/o/simple.jsp?pkgname=com.lrlz.beautyshop';
  998. } else if (app.indexOf('micromessenger') > -1 && app_nav.indexOf('android') > -1) {
  999. href = "http://p.lrlz.com/hfive/android_down/index.html";
  1000. }
  1001. else {
  1002. href = "javascript:void(0)";
  1003. }
  1004. return href;
  1005. }
  1006. var open_href = app();
  1007. $('.open_app_btn').attr('href', open_href);