public.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. var checkStickLong = {
  2. check:function(){
  3. var stickLong = this.getWidthNumber($(".stick").css('width'));
  4. var maxLong = this.getWidthNumber($(".wall").eq(1).css('left'))+this.getWidthNumber($(".wall").eq(1).css('width'))-screenWidth*0.2;
  5. var minLong = this.getWidthNumber($(".wall").eq(1).css('left'))-screenWidth*0.2;
  6. //alert(minLong);
  7. if (stickLong<maxLong&&stickLong>minLong) {
  8. var me=this;
  9. me.run();
  10. setTimeout(function(){
  11. me.getPoint();
  12. me.getNewWall();
  13. },1100);
  14. } else if(stickLong>maxLong){
  15. clearBind();
  16. this.getDown();
  17. } else {
  18. clearBind();
  19. this.getDown();
  20. }
  21. },
  22. run:function(){
  23. $(".stickMan img").attr({'src':'images/stick.gif'});
  24. var moveNumber = this.getWidthNumber($(".wall").eq(1).css('left'))+this.getWidthNumber($(".wall").eq(1).css('width'))-screenWidth*0.2;
  25. $(".stickMan").animate({left:'+='+moveNumber+'px'},1000);
  26. $("body").css('background-position-x', '-'+(point+1)*20+'px');
  27. setTimeout(function(){
  28. $(".stickMan img").attr({'src':'images/stick_stand.png'});
  29. },1000);
  30. },
  31. getDown:function(){
  32. $(".stickMan img").attr({'src':'images/stick.gif'});
  33. var me = this;
  34. $(".stickMan").animate({left:'+='+$(".stick").css('width')},1000);
  35. $("body").css('background-position-x', '-'+(point+1)*30+'px');
  36. setTimeout(function(){
  37. $('.stick').css('transform','rotate(90deg)');
  38. $(".stickMan").animate({bottom:'-'+$(".stickMan").css('height')},300);
  39. },1000);
  40. setTimeout(function(){
  41. me.showResult();
  42. },1300);
  43. },
  44. getPoint:function(){
  45. point++;
  46. $(".point").html(point);
  47. var len=$(".shouji").css("left");
  48. var len1=$("#main").width();
  49. var kk=parseInt(len)-parseInt(len1)/6;
  50. $(".shouji").animate({"left":kk+"px"},1000);
  51. //parseInt(len)-4
  52. //$(")
  53. },
  54. getNewWall:function(){
  55. this.setNewWall();
  56. //$('.stick').css('transition','0');
  57. //$(".wall").animate({left:'-='+$(".new").eq(0).css('left')},500);
  58. //$(".stick").animate({left:'-='+$(".new").eq(0).css('left')},500);
  59. //$(".stick").css('transform','translateX(-'+$(".new").eq(0).css('left')+')');
  60. setTimeout(this.resetWall,550);
  61. },
  62. resetWall:function(){
  63. addBind();
  64. $('.wall').eq(0).remove();
  65. $('.new').eq(0).removeClass('new');
  66. $('.init').eq(0).removeClass('init');
  67. },
  68. getWidthNumber:function(ele){
  69. if (ele) {
  70. var WidthNumber = ele.substr(0,ele.length-2);
  71. WidthNumber = Number(WidthNumber);
  72. return WidthNumber;
  73. }
  74. },
  75. setNewWall:function(){
  76. //新墙设置
  77. var newWallSpacing =Math.random()*55+5+20;
  78. var newWallWidth = Math.random()*Math.min(90-newWallSpacing,15)+5;
  79. var tpl = '<div class="wall new init" style="width:'+newWallWidth+'%;left:100%"></div>';
  80. $("#main").append(tpl);
  81. //移动设置
  82. var moveNumber = this.getWidthNumber($(".wall").eq(1).css('left'))+this.getWidthNumber($(".wall").eq(1).css('width'))-screenWidth*0.2;
  83. $(".wall").eq(0).animate({left:'-='+moveNumber+'px'},500);
  84. $(".wall").eq(1).animate({left:'-='+moveNumber+'px'},500);
  85. $(".wall").eq(2).animate({left:newWallSpacing+'%'},500);
  86. $('.stick').css('transition','0');
  87. $(".stick").animate({left:'-='+moveNumber+'px'},500);
  88. $(".stickMan").animate({left:'-='+moveNumber+'px'},500);
  89. },
  90. showResult: function() {
  91. $(".point,.tips").css('display','none');
  92. $(".newPoint").html(point);
  93. $(".gameOver").css('display','block');
  94. this.setBestPoint();
  95. },
  96. setBestPoint: function() {
  97. var bestPoint = window.sessionStorage.getItem('stickManPoint');
  98. if(!bestPoint){
  99. bestPoint = point;
  100. window.sessionStorage.setItem('stickManPoint',point);
  101. } else if(bestPoint<point){
  102. bestPoint = point;
  103. window.sessionStorage.setItem('stickManPoint',point);
  104. }
  105. $(".bestPoint").html(bestPoint);
  106. shareToWeixin();
  107. }
  108. };
  109. function shareToWeixin(){
  110. WeixinApi.ready(function(Api) {
  111. // 微信分享的数据
  112. var desc = '智商超过130的人才能玩到第40关!!!!';
  113. var bestPoint = window.sessionStorage.getItem('stickManPoint');
  114. if(!bestPoint||bestPoint==0){
  115. desc ='智商超过130的人才能玩到第40关!!!!';
  116. } else {
  117. if(bestPoint>=40){
  118. desc ='我居然获得了'+bestPoint+'分!去和和商城分享比拼喽!';
  119. }else if(bestPoint<40){
  120. desc ='我才得了'+bestPoint+'分!还需要继续努力哦!';
  121. }
  122. }
  123. var wxData = {
  124. "appId": wxcfdc424062594fbe, // 服务号可以填写appId
  125. "imgUrl" : 'http://smartmercado.com/wxsc/puzzle/paolu/images/paolu.jpg',
  126. "link" : 'http://smartmercado.com/wxsc/puzzle/paolu/index.html',
  127. "desc" : desc,
  128. "title" : desc
  129. };
  130. // 分享的回调
  131. var wxCallbacks = {
  132. // 收藏操作是否触发回调,默认是开启的
  133. favorite : false,
  134. // 分享操作开始之前
  135. ready : function() {
  136. // 你可以在这里对分享的数据进行重组
  137. //alert("准备分享");
  138. },
  139. // 分享被用户自动取消
  140. cancel : function(resp) {
  141. // 你可以在你的页面上给用户一个小Tip,为什么要取消呢?
  142. //alert("分享被取消,msg=" + resp.err_msg);
  143. },
  144. // 分享失败了
  145. fail : function(resp) {
  146. // 分享失败了,是不是可以告诉用户:不要紧,可能是网络问题,一会儿再试试?
  147. //alert("分享失败,msg=" + resp.err_msg);
  148. },
  149. // 分享成功
  150. confirm : function(resp) {
  151. // 分享成功了,我们是不是可以做一些分享统计呢?
  152. //alert("分享成功,msg=" + resp.err_msg);
  153. $("#mask").css('display','none');
  154. },
  155. // 整个分享过程结束
  156. all : function(resp,shareTo) {
  157. // 如果你做的是一个鼓励用户进行分享的产品,在这里是不是可以给用户一些反馈了?
  158. //alert("分享" + (shareTo ? "到" + shareTo : "") + "结束,msg=" + resp.err_msg);
  159. }
  160. };
  161. // 用户点开右上角popup菜单后,点击分享给好友,会执行下面这个代码
  162. Api.shareToFriend(wxData, wxCallbacks);
  163. // 点击分享到朋友圈,会执行下面这个代码
  164. Api.shareToTimeline(wxData, wxCallbacks);
  165. // 点击分享到腾讯微博,会执行下面这个代码
  166. Api.shareToWeibo(wxData, wxCallbacks);
  167. // iOS上,可以直接调用这个API进行分享,一句话搞定
  168. Api.generalShare(wxData,wxCallbacks);
  169. // 有可能用户是直接用微信“扫一扫”打开的,这个情况下,optionMenu是off状态
  170. // 为了方便用户测试,我先来trigger show一下
  171. //var elOptionMenu = document.getElementById('optionMenu');
  172. //elOptionMenu.click(); // 先隐藏
  173. //elOptionMenu.click(); // 再显示
  174. });
  175. }