Commit ed2d4ab4ac0aef6478837054947571117c226c8e

Authored by 程雨佳
2 parents d0392759 3d894794
lottery.html
@@ -37,7 +37,8 @@ @@ -37,7 +37,8 @@
37 .main-left .avatar-img {position: relative; width: 488px;height: 488px;border-radius: 50%;overflow: hidden;} 37 .main-left .avatar-img {position: relative; width: 488px;height: 488px;border-radius: 50%;overflow: hidden;}
38 .main-left .avatar-list {position: absolute;top: 0;left: 0;} 38 .main-left .avatar-list {position: absolute;top: 0;left: 0;}
39 .winner {width: 488px;height: 488px;border-radius: 50%;overflow: hidden;} 39 .winner {width: 488px;height: 488px;border-radius: 50%;overflow: hidden;}
40 - .main-left .avatar-item {float: left;width: 488px;height: 488px;border-radius: 50%;} 40 + .main-left .avatar-item-wrap {float: left;width: 488px;height: 488px;border-radius: 50%;overflow: hidden;}
  41 + .main-left .avatar-item {width: 488px;}
41 .main-left .avatar-bg {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url('./img/pc/avatar_bg.png') no-repeat;background-size: 100% 100%;} 42 .main-left .avatar-bg {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background: url('./img/pc/avatar_bg.png') no-repeat;background-size: 100% 100%;}
42 .user-info {display: flex;font-size: 55px;color: #FFCD7E;} 43 .user-info {display: flex;font-size: 55px;color: #FFCD7E;}
43 .user-info .label {width: 292px;text-align: right;} 44 .user-info .label {width: 292px;text-align: right;}
@@ -83,7 +84,9 @@ @@ -83,7 +84,9 @@
83 <div class="avatar"> 84 <div class="avatar">
84 <div class="avatar-img"> 85 <div class="avatar-img">
85 <div class="avatar-list clearfix"> 86 <div class="avatar-list clearfix">
86 - <img class="avatar-item" src="./img/pc/default_avatar.png"> 87 + <div class="avatar-item-wrap">
  88 + <img class="avatar-item" src="./img/pc/default_avatar.png">
  89 + </div>
87 </div> 90 </div>
88 </div> 91 </div>
89 <div class="winner hide"> 92 <div class="winner hide">
lottery.js
@@ -52,6 +52,38 @@ let action = { @@ -52,6 +52,38 @@ let action = {
52 $('.result-title').html(action.prizeList[action.curPrizeIndex].prize_name); 52 $('.result-title').html(action.prizeList[action.curPrizeIndex].prize_name);
53 } 53 }
54 }, 54 },
  55 + loadImage: function(dom, parent) {
  56 + var width = $(parent).width();
  57 + $(dom).on('load', function() {
  58 + var imgWidth = $(dom).width();
  59 + var imgHeight = $(dom).height();
  60 + var ratio = imgWidth / imgHeight;
  61 + if (ratio > 1) {
  62 + imgHeight = width;
  63 + imgWidth = width * ratio;
  64 + var margin = (imgWidth - width) / 2;
  65 + $(dom).css({
  66 + width: imgWidth + 'px',
  67 + height: imgHeight + 'px',
  68 + 'margin-left': -margin + 'px'
  69 + });
  70 + } else if (ratio < 1) {
  71 + imgWidth = width;
  72 + imgHeight = width / ratio;
  73 + var margin = (imgHeight - width) / 2;
  74 + $(dom).css({
  75 + width: imgWidth + 'px',
  76 + height: imgHeight + 'px',
  77 + 'margin-top': -margin + 'px'
  78 + });
  79 + } else {
  80 + $(dom).css({
  81 + width: width + 'px',
  82 + height: width + 'px'
  83 + });
  84 + }
  85 + });
  86 + },
55 // 获取奖项列表 87 // 获取奖项列表
56 getPrizeList: function() { 88 getPrizeList: function() {
57 let url = '/apicp.PrizeList.php'; 89 let url = '/apicp.PrizeList.php';
@@ -113,18 +145,16 @@ let action = { @@ -113,18 +145,16 @@ let action = {
113 let nameStr = ''; 145 let nameStr = '';
114 let prizeNoStr = ''; 146 let prizeNoStr = '';
115 this.userList.map(user => { 147 this.userList.map(user => {
116 - if (user.headimg) {  
117 - imgStr += '<img class="avatar-item" src="' + user.headimg + '">';  
118 - } else {  
119 - imgStr += '<img class="avatar-item" src="' + defaultAvatar + '">';  
120 - } 148 + var userAvatar = user.headimg ? user.headimg : defaultAvatar;
  149 + imgStr += '<div class="avatar-item-wrap"><img class="avatar-item" src="' + userAvatar + '"></div>';
121 nameStr += '<span class="scroll-item">' + user.realname + '</span>'; 150 nameStr += '<span class="scroll-item">' + user.realname + '</span>';
122 prizeNoStr += '<span class="scroll-item">' + user.prize_no + '</span>'; 151 prizeNoStr += '<span class="scroll-item">' + user.prize_no + '</span>';
123 }); 152 });
124 $('.avatar-list').html(imgStr); 153 $('.avatar-list').html(imgStr);
125 $('.user-name .scroll-list').html(nameStr); 154 $('.user-name .scroll-list').html(nameStr);
126 $('.user-no .scroll-list').html(prizeNoStr); 155 $('.user-no .scroll-list').html(prizeNoStr);
127 - let imgListWidth = parseInt($('.avatar-list .avatar-item').css('width')) * this.userList.length + 'px'; 156 + this.loadImage('.avatar-list .avatar-item', '.avatar-list .avatar-item-wrap');
  157 + let imgListWidth = parseInt($('.avatar-list .avatar-item-wrap').css('width')) * this.userList.length + 'px';
128 $('.avatar-list').css('width', imgListWidth); 158 $('.avatar-list').css('width', imgListWidth);
129 let nameListWidth = parseInt($('.user-name .scroll-item').css('width')) * this.userList.length + 'px'; 159 let nameListWidth = parseInt($('.user-name .scroll-item').css('width')) * this.userList.length + 'px';
130 $('.user-name .scroll-list').css('width', nameListWidth); 160 $('.user-name .scroll-list').css('width', nameListWidth);
@@ -142,7 +172,7 @@ let action = { @@ -142,7 +172,7 @@ let action = {
142 $('.stop-btn').show(); 172 $('.stop-btn').show();
143 173
144 // 开始抽奖动画 174 // 开始抽奖动画
145 - imgTimer = this.lotteryAnimation($('.avatar-list'), '.avatar-item', 244); 175 + imgTimer = this.lotteryAnimation($('.avatar-list'), '.avatar-item-wrap', 244);
146 nameTimer = this.lotteryAnimation($('.user-name .scroll-list'), '.scroll-item', 146); 176 nameTimer = this.lotteryAnimation($('.user-name .scroll-list'), '.scroll-item', 146);
147 prizeNoTimer = this.lotteryAnimation($('.user-no .scroll-list'), '.scroll-item', 146); 177 prizeNoTimer = this.lotteryAnimation($('.user-no .scroll-list'), '.scroll-item', 146);
148 }, 178 },
@@ -179,7 +209,7 @@ let action = { @@ -179,7 +209,7 @@ let action = {
179 $('.continue-btn, .start-btn').hide(); 209 $('.continue-btn, .start-btn').hide();
180 210
181 // 开始抽奖动画 211 // 开始抽奖动画
182 - imgTimer = this.lotteryAnimation($('.avatar-list'), '.avatar-item', 244); 212 + imgTimer = this.lotteryAnimation($('.avatar-list'), '.avatar-item-wrap', 244);
183 nameTimer = this.lotteryAnimation($('.user-name .scroll-list'), '.scroll-item', 146); 213 nameTimer = this.lotteryAnimation($('.user-name .scroll-list'), '.scroll-item', 146);
184 prizeNoTimer = this.lotteryAnimation($('.user-no .scroll-list'), '.scroll-item', 146); 214 prizeNoTimer = this.lotteryAnimation($('.user-no .scroll-list'), '.scroll-item', 146);
185 }, 215 },
@@ -222,6 +252,7 @@ let action = { @@ -222,6 +252,7 @@ let action = {
222 $('.winner .avatar-item').attr('src', userAvatar); 252 $('.winner .avatar-item').attr('src', userAvatar);
223 $('.winner-name').html(this.currentUser.realname); 253 $('.winner-name').html(this.currentUser.realname);
224 $('.winner-no').html(this.currentUser.prize_no); 254 $('.winner-no').html(this.currentUser.prize_no);
  255 + action.loadImage('.winner .avatar-item', '.winner');
225 256
226 // 更新中奖名单模板 257 // 更新中奖名单模板
227 action.updateResultTmpl(); 258 action.updateResultTmpl();
mobile.html
@@ -133,6 +133,24 @@ @@ -133,6 +133,24 @@
133 .dialog-reverse-btn {background: url('./img/mobile/dialog_btn_cancel.png') no-repeat;background-size: 100% 100%;color: #CF3727;} 133 .dialog-reverse-btn {background: url('./img/mobile/dialog_btn_cancel.png') no-repeat;background-size: 100% 100%;color: #CF3727;}
134 .dialog-close {position: absolute;top: -.6rem;right: .26rem;width: .76rem;height: .76rem;background: url('./img/mobile/dialog_close.png') no-repeat;background-size: 100% 100%;} 134 .dialog-close {position: absolute;top: -.6rem;right: .26rem;width: .76rem;height: .76rem;background: url('./img/mobile/dialog_close.png') no-repeat;background-size: 100% 100%;}
135 135
  136 + @media only screen and (device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) {
  137 + .home {padding-bottom: 3.5rem;}
  138 + .home-vote-btn {bottom: 2.1rem;}
  139 + .home-barrage-wrap {padding-bottom: .5rem;}
  140 + .bottom-btn {padding-bottom: .2rem;}
  141 + }
  142 + @media only screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3) {
  143 + .home {padding-bottom: 3.5rem;}
  144 + .home-vote-btn {bottom: 2.1rem;}
  145 + .home-barrage-wrap {padding-bottom: .5rem;}
  146 + .bottom-btn {padding-bottom: .2rem;}
  147 + }
  148 + @media only screen and (device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2) {
  149 + .home {padding-bottom: 3.5rem;}
  150 + .home-vote-btn {bottom: 2.1rem;}
  151 + .home-barrage-wrap {padding-bottom: .5rem;}
  152 + .bottom-btn {padding-bottom: .2rem;}
  153 + }
136 .no-auth {width: 100%;height: 100vh;display: flex;flex-direction: column;justify-content: center;align-items: center;font-size: .32rem;color: #000;} 154 .no-auth {width: 100%;height: 100vh;display: flex;flex-direction: column;justify-content: center;align-items: center;font-size: .32rem;color: #000;}
137 .no-auth-icon {width: 3rem;margin-bottom: .3rem;} 155 .no-auth-icon {width: 3rem;margin-bottom: .3rem;}
138 .no-auth-text {padding-bottom: 2rem;} 156 .no-auth-text {padding-bottom: 2rem;}
@@ -230,8 +248,9 @@ @@ -230,8 +248,9 @@
230 type="text" 248 type="text"
231 placeholder="发条弹幕试试" 249 placeholder="发条弹幕试试"
232 maxlength="50" 250 maxlength="50"
  251 + onfocus="action.onFocus()"
233 oninput="action.toggleBtnState()" 252 oninput="action.toggleBtnState()"
234 - onblur="action.resetPosition()"> 253 + onblur="action.onBlur()">
235 <div class="send-btn">发送</div> 254 <div class="send-btn">发送</div>
236 </div> 255 </div>
237 </div> 256 </div>
mobile.js
@@ -311,15 +311,35 @@ var action = { @@ -311,15 +311,35 @@ var action = {
311 // 发送弹幕 311 // 发送弹幕
312 initBarrage: function() { 312 initBarrage: function() {
313 var socket = io(socketUrl); 313 var socket = io(socketUrl);
314 - 314 +
315 $('.send-btn').on('click', function() { 315 $('.send-btn').on('click', function() {
316 if ($('.barrage-input').val() != '') { 316 if ($('.barrage-input').val() != '') {
317 socket.emit('barrage', $('.barrage-input').val()); 317 socket.emit('barrage', $('.barrage-input').val());
  318 + action.showToast('发送成功');
318 $('.barrage-input').val(''); 319 $('.barrage-input').val('');
319 $('.send-btn').removeClass('active'); 320 $('.send-btn').removeClass('active');
320 } 321 }
321 }); 322 });
322 }, 323 },
  324 + onFocus: function() {
  325 + var width = window.screen.width;
  326 + var height = window.screen.height;
  327 + if ((width == 375 && height == 812) || (width == 414 && height == 896)) {
  328 + $('.home').css('padding-bottom', '3rem');
  329 + $('.home-vote-btn').css('bottom', '1.6rem');
  330 + $('.home-barrage-wrap').css('padding-bottom', '0');
  331 + }
  332 + },
  333 + onBlur: function() {
  334 + var width = window.screen.width;
  335 + var height = window.screen.height;
  336 + if ((width == 375 && height == 812) || (width == 414 && height == 896)) {
  337 + $('.home').css('padding-bottom', '3.5rem');
  338 + $('.home-vote-btn').css('bottom', '2.1rem');
  339 + $('.home-barrage-wrap').css('padding-bottom', '0.5rem');
  340 + }
  341 + this.resetPosition();
  342 + },
323 resetPosition: function () { 343 resetPosition: function () {
324 var currentPosition, timer; 344 var currentPosition, timer;
325 var speed = 1; // 页面滚动距离 345 var speed = 1; // 页面滚动距离