Authored by 陈峰

merge master

'use strict';
module.exports = {
index: (req, res) => {
res.render('app-downloads', {
localCss: true
});
}
};
... ...
'use strict';
const model = require('../models/individuation');
const channels = {
boys: 1,
girl: 2,
kids: 3,
lifestyle: 4
};
exports.productLst = function(req, res, next) {
let keys = ['sort', 'misort', 'msort', 'gender', 'brand'],
enumParam = {},
params = {
uid: req.query.uid,
udid: req.query.udid,
promotion: req.query.pid,
yh_channel: req.query.yh_channel || (req.cookies._Channel && channels[req.cookies._Channel]) || 1,
specified_sort: req.query.enum,
stocknumber: req.query.sn,
p_d: req.query.pd,
limit: req.query.limit || 10
};
... ... @@ -21,21 +28,17 @@ exports.productLst = function(req, res, next) {
if (params.specified_sort) {
if (params.brand) {
enumParam.brands = params.brand.split(',');
params.limit = enumParam.brands.length;
params.limit = params.brand.split(',').length;
} else if (params.sort) {
enumParam.sorts = params.sort.split(',');
params.limit = enumParam.sorts.length;
params.limit = params.sort.split(',').length;
} else if (params.misort) {
enumParam.misorts = params.misort.split(',');
params.limit = enumParam.misorts.length;
params.limit = params.misort.split(',').length;
} else if (params.msort) {
enumParam.msorts = params.msort.split(',');
params.limit = enumParam.msorts.length;
params.limit = params.msort.split(',').length;
}
}
model.productLst(params, enumParam).then((result) => {
model.productLst(params).then((result) => {
res.jsonp(result);
}).catch(next);
};
\ No newline at end of file
... ...
... ... @@ -41,6 +41,7 @@ exports.wechatShare = (req, res, next) => {
exports.feature = (req, res) => {
let mktCode = req.query.mkt_code || req.query.union_type || false;
let expires = req.query.expires;
let cover = req.query.cover;
if (mktCode) {
res.cookie('unionTypeYas', mktCode, { // 下载浮层
... ... @@ -55,7 +56,7 @@ exports.feature = (req, res) => {
expires && (options.expires = new Date(Date.now() + Number(expires)));
if (req.yoho.isWechat) {
if (req.yoho.isWechat || cover) {
// 微信中,不管是否已经种入cookie,直接覆盖
res.cookie('mkt_code', mktCode, options);
} else if (!req.cookies.mkt_code) {
... ...
... ... @@ -3,14 +3,13 @@
const api = global.yoho.API;
let _getProduct = function(o) {
if (!o) {
return {};
}
return {
small_sort_id: o.small_sort_id,
middle_sort_id: o.middle_sort_id,
max_sort_id: o.max_sort_id,
brand_id: o.brand_id,
shop_id: o.shop_id,
shop_template_type: o.shop_template_type,
brand_domain: o.brand_domain,
brand_name: o.brand_name,
product_id: o.product_id,
... ... @@ -20,39 +19,21 @@ let _getProduct = function(o) {
sales_price: o.sales_price,
cn_alphabet: o.cn_alphabet,
default_images: o.default_images,
goods_id: Array.isArray(o.goods_list) && o.goods_list.length ? o.goods_list[0].goods_id : ''
goods_id: Array.isArray(o.goods_list) && o.goods_list.length ? o.goods_list[0].goods_id : undefined
};
};
module.exports = {
productLst: function(params, enumParam) {
productLst: function(params) {
return api.get('', Object.assign({
method: 'app.search.newPromotion'
}, params)).then(res => {
var data = new Array(Number(params.limit)),
var data = [],
lst = (res.data && res.data.product_list) || [];
for (var i = 0; i < data.length; i++) {
var o = lst[i] || {};
if (params.specified_sort) {
// 枚举类型
if (enumParam.brands && Number(enumParam.brands[i]) === Number(o.brand_id)) {
data[i] = _getProduct(o);
} else if (enumParam.sorts && Number(enumParam.sorts[i]) === Number(o.small_sort_id)) {
data[i] = _getProduct(o);
} else if (enumParam.misorts && Number(enumParam.misorts[i]) === Number(o.middle_sort_id)) {
data[i] = _getProduct(o);
} else if (enumParam.msorts && Number(enumParam.msorts[i]) === Number(o.max_sort_id)) {
data[i] = _getProduct(o);
} else {
lst.splice(i, 0, {});
data[i] = {};
}
} else {
data[i] = _getProduct(o);
}
}
lst.forEach(function(o) {
o && data.push(_getProduct(o));
});
return data;
});
}
... ...
... ... @@ -34,6 +34,7 @@ const promotion = require(`${cRoot}/promotion`);
const individuation = require(`${cRoot}/individuation`);
const appDownloads = require(`${cRoot}/app-downloads`);
const redbag = require(`${cRoot}/redbag`);
... ... @@ -158,4 +159,6 @@ router.get('/redbag/2017', redbag.index);
// 获取活动页面个性化推荐商品数据
router.get('/individuation', individuation.productLst);
router.get('/app-downloads', appDownloads.index);
module.exports = router;
... ...
<div class="container">
<div id="no-download"></div>
<div class="banner"></div>
<div class="main">
<div class="slide-box">
<div class="swiper-wrapper clearfix">
<div class="yohobuy" tag="0">
<div class="swiper-yohobuy bg"></div>
<div class="ewm-area">
<img src="//cdn.yoho.cn/yohocn/160315/images/ewm-yohobuy.png" />
<div class="ewm-info"></div>
</div>
<span id="download" class="download-btn">点击下载 · Yoho!Buy有货</span>
</div>
</div>
</div>
<div class="slide-pagination clearfix">
</div>
</div>
<div class="footer">
CopyRight © 2007-2017 YOHO!新力传媒
</div>
<div class="mask">
<div class="wx-img1"></div>
<div class="wx-img2"></div>
<div class="wx-img3"></div>
</div>
</div>
... ...
... ... @@ -8,7 +8,8 @@
<div class="mobile-container">
<div class="mobile-wrap yoho-page student">
<div style=" position: fixed;background: #f0f0f0;height: 100%;width: 100%;">
<section class="s-feild s-marbot">
<div style="text-align:center;font-size:16px;padding-top:100px;">学生认证功能暂时关闭</div>
{{!--<section class="s-feild s-marbot">
全国已有<span class="s-red">{{count}}</span>位学生完成认证
</section>
<div class="s-form">
... ... @@ -40,12 +41,12 @@
同意<a class="s-blue" href='//m.yohobuy.com/activity/student/detail/renzhen?openby:yohobuy={"action":"go.h5","params":{"islogin":"N","url":"{{http}}//m.yohobuy.com/activity/student/detail/renzhen"}}'>Yoho!Buy有货学生认证协议</a>
</section>
<a class="s-submit" href="javascript:void(0);">立即认证</a>
</div>
</div>--}}
</div>
</div>
</div>
{{!--
<article class="aslider" data-aslider="province">
<section class="asilder_wrapper close">
<header class="s-layout-title">
... ... @@ -133,4 +134,4 @@
</div>
</div>
</section>
</article>
</article>--}}
... ...
... ... @@ -143,7 +143,7 @@
</section>
{{#loginUrl}}
<div class='s-layout'>
{{!--<div class='s-layout'>
{{#if @root.isSupportStudent}}
快来认证吧,认证通过即可享受专属优惠!
{{else}}
... ... @@ -153,7 +153,7 @@
{{#if @root.isSupportStudent}}
<a class='s-renzhen' href='{{.}}'>立即认证</a>
{{/if}}
</div>
</div>--}}
<div class="s-replace"></div>
{{/loginUrl}}
... ...
/**
* 自定义频道, 临时方案,暂时写死
*/
'use strict';
const customModel = require('../models/custom');
let index = (req, res, next) => {
let contentCode = req.params.id;
if (!contentCode) {
return next();
}
customModel.getResourceData(contentCode).then(result => {
res.render('custom', {
module: 'channel',
page: 'custom',
content: result,
title: req.query.title || 'Yoho!Buy 有货'
});
}).catch(next);
};
let zhihui = (req, res) => {
res.render('zhihui', {
module: 'channel',
page: 'custom',
title: req.query.title || 'Yoho!Buy 有货',
downloadLink: 'http://union.yoho.cn/union/downapp.html?union_type=100000000000081'
});
};
module.exports = {
index,
zhihui
};
... ...
/**
* 自定义频道页面 model
* @author: Bi Kai<kai.bi@yoho.cn>
* @date: 2016/05/09
*/
'use strict';
const utils = '../../../utils';
const resourcesProcess = require(`${utils}/resources-process`);
const service = global.yoho.ServiceAPI;
const getResourceData = (code) => {
return service.get('operations/api/v5/resource/get', {
content_code: code
}, {
cache: true,
code: 200
}).then(result => {
return resourcesProcess(result.data);
});
};
module.exports = {
getResourceData
};
... ...
... ... @@ -11,6 +11,7 @@ const cRoot = './controllers';
const channel = require(cRoot);
const cate = require(cRoot + '/cate');
const brandController = require(`${cRoot}/brand`);
const custom = require(`${cRoot}/custom`);
const router = express.Router(); // eslint-disable-line
... ... @@ -34,4 +35,12 @@ router.get('/brands/delBrandHistory', brandController.delBrandHistory); // 删
// 5.2新楼层功能
router.post('/channel/shopRecom', channel.shopRecom); // 店铺推荐收藏状态
router.post('/channel/userVip', channel.userVip);
// 自定义频道,市场推广-智汇
// 此页面做的早,写死发给市场,与自定义的不兼容,所以需要写死
router.get('/channel/2fb054e8315300a1ae1f80c3a4fda862.html', custom.zhihui);
// 自定义频道
router.get('/channel/:id.html', custom.index);
module.exports = router;
... ...
{{! 资源位}}
<div class="resource-content">
{{> channel/content}}
</div>
... ...
<style>
html,body {
width: 100%;
height: 100%;
margin: 0;
padding: 0;
}
div {
margin: 0;
padding: 0;
}
.wrapper {
position: relative;
width: 100%;
}
.container {
position: relative;
margin: 0 auto;
}
img {
width:100%;
float: left;
}
ul {
list-style: none;
overflow: hidden;
margin: 0;
padding: 0;
}
ul li {
position: relative;
width:100%;
overflow: hidden;
}
#btn_download {
position: absolute;
width: 73%;
height: 14%;
top: 75.5%;
left: 13%;
}
</style>
<div class="wrapper">
<div class="container">
<ul>
<li>
<img src="https://feature.yoho.cn/0113/images/01ff33cffc05e280bd701b90801835ad51.jpg?imageView2/2/q/75/">
<a id="btn_download" href="{{downloadLink}}" target="_blank"></a>
</li>
<li>
<img src="https://feature.yoho.cn/0113/images/015d6241108a4db156d4153a5645bd283e.jpg?imageView2/2/q/75/">
</li>
<li>
<img src="https://feature.yoho.cn/0113/images/01651b926f5f22f4b00b6809925e4388a3.jpg?imageView2/2/q/75/">
</li>
<li>
<img src="https://feature.yoho.cn/0113/images/0157ad8f797d97f10cc21bd30333c5a7c5.jpg?imageView2/2/q/75/">
</li>
</ul>
<input type="hidden" id="no-download" name="">
</div>
</div>
... ...
... ... @@ -14,14 +14,14 @@
<div class="iconfont more-icon tap-hightlight">&#xe604;</div>
</a>
{{#unless students}}
<a class="students-entry" href="{{verifyUrl}}">学生认证</a>
{{!--<a class="students-entry" href="{{verifyUrl}}">学生认证</a>--}}
{{/unless}}
{{^}}
<div class="user-info">
<a class="login-btn" href="{{signinUrl}}">
登录/注册
</a>
<a class="students-entry" href="{{verifyUrl}}">学生认证</a>
{{!--<a class="students-entry" href="{{verifyUrl}}">学生认证</a>--}}
</div>
{{/isLogin}}
</div>
... ...
... ... @@ -409,6 +409,9 @@ const _detailDataPkg = (origin, ua) => {
dest.isDepositAdvance || dest.isSeckill || dest.isLimitBuy || dest.isPresale
); // 商品有限购、秒杀、定金预售、普通预售 不显示领券
// 20170113 要求关闭商品详情页面领券功能
// dest.showCoupon = false;
return dest;
};
... ...
... ... @@ -81,6 +81,9 @@ const tool = {
dest.isDepositAdvance || dest.isSeckill || dest.isLimitBuy || dest.isPresale
); // 商品有限购、秒杀、定金预售、普通预售 不显示领
// 20170113 要求关闭商品详情页面领券功能
// dest.showCoupon = false;
// 商品信息
if (origin.goods_list.length) {
let goodsGroup = [];
... ...
... ... @@ -12,6 +12,9 @@ const cachePage = {
'/kids': 30 * SECOND,
'/lifestyle': 30 * SECOND,
// 自定义频道
'/channel/:id.html': 1 * MINUTE,
//ajax获取频道页楼层
'/channel/getResourceContent': 30 * MINUTE,
... ...
... ... @@ -17,21 +17,21 @@ module.exports = {
assetUrl: '//127.0.0.1:5001',
testCode: 'yoho4946abcdef#$%&!@',
domains: {
api: 'http://api-test3.yohops.com:9999/',
service: 'http://service-test3.yohops.com:9999/',
liveApi: 'http://testapi.live.yohops.com:9999/',
singleApi: 'http://api-test3.yohops.com:9999/',
imSocket: 'ws://im.yohobuy.com:10240',
imCs: 'http://im.yohobuy.com/api',
imServer: 'http://im.yohobuy.com/server'
// api: 'http://api-test3.yohops.com:9999/',
// service: 'http://service-test3.yohops.com:9999/',
// liveApi: 'http://testapi.live.yohops.com:9999/',
// singleApi: 'http://api-test3.yohops.com:9999/',
// imSocket: 'ws://im.yohobuy.com:10240',
// imCs: 'http://im.yohobuy.com/api',
// imServer: 'http://im.yohobuy.com/server'
// api: 'http://api.yoho.cn/',
// service: 'http://service.yoho.cn/',
// liveApi: 'http://api.live.yoho.cn/',
// singleApi: 'http://single.yoho.cn/',
// imSocket: 'wss://imsocket.yohobuy.com:443',
// imCs: 'https://imhttp.yohobuy.com/api',
// imServer: 'https://imhttp.yohobuy.com/server'
api: 'http://api.yoho.cn/',
service: 'http://service.yoho.cn/',
liveApi: 'http://api.live.yoho.cn/',
singleApi: 'http://single.yoho.cn/',
imSocket: 'wss://imsocket.yohobuy.com:443',
imCs: 'https://imhttp.yohobuy.com/api',
imServer: 'https://imhttp.yohobuy.com/server'
},
subDomains: {
host: '.m.yohobuy.com',
... ...
... ... @@ -11,7 +11,7 @@
<meta content="telephone=no" name="format-detection" />
<meta content="email=no" name="format-detection" />
{{# cononical}}
<link rel=”cononical” href={{currentHref}}/>
<link rel="cononical" href="{{currentHref}}"/>
{{/ cononical}}
{{#dnsPrefetch.hosts}}
<link rel="dns-prefetch" href="{{this}}">
... ...
... ... @@ -12,7 +12,7 @@
a.async = 1;
a.src = j;
m.parentNode.insertBefore(a, m);
}(window, document, 'script', (document.location.protocol === 'https:' ? 'https:' : 'http:') + '//cdn.yoho.cn/yas-jssdk/2.1.2/yas.js', '_yas'));
}(window, document, 'script', (document.location.protocol === 'https:' ? 'https:' : 'http:') + '//cdn.yoho.cn/yas-jssdk/2.2.1/yas.js', '_yas'));
var _hmt = _hmt || [];
... ... @@ -56,7 +56,7 @@
uid = uid === 0 ? '' : uid;
window._ozuid = uid; // 暴露ozuid
if (window._yas) {
window._yas(1 * new Date(), '2.1.2', 'yohobuy_m', uid, '', '');
window._yas(1 * new Date(), '2.2.1', 'yohobuy_m', uid, '', '');
}
// 非登录状态,加载百度统计
... ...
... ... @@ -2,7 +2,7 @@
{{#data}}
<div class="banner-list">
<a href="{{url}}">
<img src="{{image2 src w=640 h=200 q=60}}" alt="">
<img src="{{image2 src w=640 h=200 q=60 mode=3}}" alt="">
</a>
</div>
{{/data}}
... ... @@ -12,7 +12,7 @@
{{#data}}
<li class="swiper-slide">
<a href="{{url}}">
<img src="{{image2 src w=640 h=200 q=60}}" alt="">
<img src="{{image2 src w=640 h=200 q=60 mode=3}}" alt="">
</a>
</li>
{{/data}}
... ...
... ... @@ -8,7 +8,7 @@
{{!--此处不使用 Lazyload 是由于安卓 UC 10 版本加载不出来--}}
<img src="{{image2 src w=158 h=174 q=60}}">
</div>
<p class="brand-name">{{name}}</p>
{{!--<p class="brand-name">{{name}}</p>--}}
</a>
</li>
{{/ list}}
... ...
... ... @@ -8,7 +8,7 @@
{{!--此处不使用 Lazyload 是由于安卓 UC 10 版本加载不出来--}}
<img src="{{image2 src w=158 h=174 q=60}}">
</div>
<p class="brand-name">{{name}}</p>
{{!--<p class="brand-name">{{name}}</p>--}}
</a>
</li>
{{/ list}}
... ...
/* eslint no-undef: "_yas" */
require('../../scss/activity/_app-downloads.css');
require('../../js/common');
var url = 'yohobuy://yohobuy.com/goapp?openby:yohobuy={"action":"go.home","params":{"gender":"1","channel":"2"}}';
var u = navigator.userAgent.toLowerCase();
var isiOS = u.indexOf('os') > -1 || u.indexOf('iphone') > -1 || u.indexOf('mac') > -1 || u.indexOf('ipad') > -1;
var appPath = url;
var ifr;
setTimeout(function() {
//记录唤醒时间
var openTime = +new Date();
window.setTimeout(function() {
if (ifr) {
document.body.removeChild(ifr);
}
//如果setTimeout 回调超过2500ms,则弹出下载
if ((+new Date()) - openTime > 500) {
if (isiOS) {
url = 'http://itunes.apple.com/us/app/id490655927?ls=1&mt=8';
} else {
url = 'http://yoho-apps.qiniudn.com/YohoBuy_YOHO.apk';
}
location.href = url;
// window.open(url);
}
}, 1000);
if (isiOS) {
window.location.href = appPath;
} else {
ifr = document.createElement('iframe');
ifr.src = appPath;
ifr.style.display = 'none';
document.body.appendChild(ifr);
}
}, 500);
//1: 男生,2-女生,3-潮童,4-创意生活
var CHANNELS = {
boys: 1,
girls: 2,
kids: 3,
lifestyle: 4
};
$('#download').click(function() {
var url;
var channel = window.cookie('_Channel');
if (isiOS) {
url = 'http://itunes.apple.com/us/app/id490655927?ls=1&mt=8';
} else {
url = 'http://yoho-apps.qiniudn.com/YohoBuy_YOHO.apk';
}
// 上报 nginx 数据
$.get('//m.yohobuy.com/activitylog.json?download2', function() {
});
// 上报 yas 数据
if (typeof _yas !== 'undefined') {
_yas.sendCustomInfo && _yas.sendCustomInfo({
op: 'YB_DOWNLOAD_C',
param: JSON.stringify({
C_ID: CHANNELS[channel],
TO_URL: encodeURIComponent(url)
})
}, true);
}
location.href = url;
});
... ...
var Swiper = require('yoho-swiper2');
var lazyLoad = require('yoho-jquery-lazyload');
var fastclick = require('yoho-fastclick');
var swiperClass;
require('../common');
$(function () {
fastclick.attach(document.body);
lazyLoad($('img.lazy'));
// 头部banner轮播
if ($('.banner-swiper').find('li').size() > 1) {
new Swiper('.banner-swiper', {
lazyLoading: true,
lazyLoadingInPrevNext: true,
loop: true,
autoplay: 3000,
autoplayDisableOnInteraction: false,
paginationClickable: true,
slideElement: 'li',
pagination: '.banner-top .pagination-inner'
});
}
// 小 banner
$('.banner-center-swiper').each(function () {
if ($(this).find('li').length > 1) {
new Swiper(this, {
preloadImages: false,
lazyLoading: true,
lazyLoadingInPrevNext: true,
lazyLoadingOnTransitionStart: true,
loop: true,
autoplay: 3000,
autoplayDisableOnInteraction: false,
slideElement: 'li',
paginationHide: true
});
}
});
// 热门品牌滑动
if ($('.brands-swiper').find('li').length > 1) {
new Swiper('.brands-swiper', {
grabCursor: true,
slidesPerView: 'auto',
wrapperClass: 'brands-list',
slideElement: 'li'
});
}
// 推荐搭配滑动
if ($('.recommend-swiper').find('li').length > 1) {
new Swiper('.recommend-swiper', {
grabCursor: true,
slidesPerView: 'auto',
wrapperClass: 'recommend-list',
slideElement: 'li'
});
}
// 潮品话题轮播
if ($('.trend-topic-swiper').find('li').size() > 1) {
new Swiper('.trend-topic-swiper', {
loop: true,
autoplay: 3000,
autoplayDisableOnInteraction: false,
paginationClickable: true,
slideElement: 'li',
pagination: '.trend-topic-content .pagination-inner'
});
}
// 新人专享轮播
if ($('.fresh-list-swiper').find('li').size() > 1) {
new Swiper('.fresh-list-swiper', {
lazyLoading: true,
lazyLoadingInPrevNext: true,
grabCursor: true,
slidesPerView: 'auto',
slideElement: 'li',
watchSlidesVisibility: true
});
}
// 潮流上装/经典裤装等轮播
$('.category-swiper').each(function (i) {
swiperClass = 'category-swiper' + i;
$(this).addClass(swiperClass);
if ($('.' + swiperClass).find('.swiper-slide').size() > 1) {
new Swiper('.' + swiperClass, {
preloadImages: false,
lazyLoading: true,
lazyLoadingInPrevNext: true,
lazyLoadingOnTransitionStart: true,
loop: true,
autoplay: 3000,
autoplayDisableOnInteraction: false,
paginationClickable: true,
slideElement: 'li',
pagination: '.' + swiperClass + ' .pagination-inner'
});
}
});
});
... ...
... ... @@ -193,17 +193,17 @@ $.extend({
// 未登录
$op.prepend(
'<a href="http://m.yohobuy.com/signin.html?refer=' + location.href + '">登录</a>' +
'<a href="/signin.html?refer=' + location.href + '">登录</a>' +
'<span class="sep-line">|</span>' +
'<a href="http://m.yohobuy.com/reg.html">注册</a>'
'<a href="/reg.html">注册</a>'
);
} else {
// 已登录
$op.prepend(
'<span>Hi,</span>' +
'<a class="user-name" href="http://m.yohobuy.com/home?tmp=' + Math.random() + '">' + user[0] + '</a>' +
'<a href="http://m.yohobuy.com/passport/signout/index">退出</a>'
'<a class="user-name" href="/home?tmp=' + Math.random() + '">' + user[0] + '</a>' +
'<a href="/passport/signout/index">退出</a>'
);
}
... ...
... ... @@ -32,9 +32,9 @@ if ($('#float-layer-btn') && $('#float-layer-btn')[0]) {
e.srcEvent.stopPropagation();
});
if (typeof window.cookie === 'function' && !window.cookie('_float-layer-app')) {
$('#float-layer-app').show();
} else {
$('#float-layer-app').hide();
}
// if (typeof window.cookie === 'function' && !window.cookie('_float-layer-app')) {
// $('#float-layer-app').show();
// } else {
// $('#float-layer-app').hide();
// }
}
... ...
... ... @@ -45,9 +45,9 @@ if ($('#float-layer-btn') && $('#float-layer-btn')[0]) {
e.srcEvent.stopPropagation();
});
if (typeof window.cookie === 'function' && !window.cookie('_float-layer-app')) {
$('#float-layer-app').show();
} else {
$('#float-layer-app').hide();
}
// if (typeof window.cookie === 'function' && !window.cookie('_float-layer-app')) {
// $('#float-layer-app').show();
// } else {
// $('#float-layer-app').hide();
// }
}
... ...
... ... @@ -334,10 +334,10 @@ $('.wei-share').on('touchend', function(e) {
});
if (typeof window.cookie === 'function' && parseInt(window.cookie('_float-layer-app-close')) != 2) {
$('#float-layer-app').show();
//$('#float-layer-app').show();
$('.down-bottom').show();
} else {
$('#float-layer-app').hide();
//$('#float-layer-app').hide();
$('.down-bottom').hide();
}
}
... ...
body {
line-height: 1.5;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
table {
border-collapse: collapse;
border-spacing: 0
}
caption, th, td, b, strong {
text-align: left;
font-weight: normal
}
table, td, th {
vertical-align: middle
}
blockquote:before, blockquote:after, q:before, q:after {
content: ""
}
blockquote, q {
quotes: "" ""
}
a img {
border: none
}
em, cite {
font-style: normal
}
body {
background: #fff;
font: 12px/1.5 Tahoma, '宋体';
color: #000
}
h1, h2, h3, h4, h5, h6 {
font-weight: normal;
color: #111
}
a {
text-decoration: none;
cursor: pointer
}
dl, dt, dd, ol, ul, li {
list-style: none
}
.left {
float: left
}
.right {
float: right
}
.clearfix:before, .clearfix:after {
content: "";
display: table
}
.clearfix:after {
clear: both
}
.clearfix {
*zoom: 1
}
body.disable-default-action {
-webkit-touch-callout: none;
-webkit-user-select: none;
}
.loadding-area {
position: fixed;
top: 50%;
left: 50%;
width: 4rem;
height: 4rem;
margin-top: -2rem;
margin-left: -2rem;
border-radius: 10%;
background-color: rgba(0, 0, 0, 0.3);
z-index: 9999;
}
.loadding {
z-index: 999;
width: 1.1rem;
position: absolute;
top: 50%;
left: 50%;
margin: -0.55rem 0 0 -0.55rem;
}
.container {
max-width: 790px;
height: auto;
margin: 0 auto;
/*overflow: hidden;*/
}
.banner {
height: 6rem;
background: url(//cdn.yoho.cn/yohocn/160315/images/banner.png) no-repeat right;
background-size: contain;
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 99;
}
.main {
position: relative;
top: 3.5rem;
height: 20rem;
}
.slide-box {
overflow: hidden;
position: relative;
height: 20.78rem;
width: 100%;
}
.slide-box .swipe-wrap {
overflow: hidden;
position: relative;
height: 19.775rem;
}
/*.slide-box .swiper-wrapper {
padding: 0px 4.578rem;
}*/
.slide-box .swiper-slide {
float: left;
width: 16rem;
position: relative;
height: 20.78rem;
margin: 0;
padding: 0;
}
.slide-box .download-btn {
background-color: #d0021b;
color: #fff;
border-radius: 0.2rem;
width: 12.8rem;
height: 2rem;
line-height: 2rem;
font-family: arial, helvetica, '黑体';
font-size: 0.8rem;
text-align: center;
position: absolute;
bottom: 0px;
left: 50%;
margin-left: -6.4rem;
}
.slide-box .ewm-area {
width: 12.8rem;
height: 5.7rem;
position: absolute;
bottom: 2.45rem;
left: 50%;
margin-left: -6.4rem;
}
.slide-box .ewm-area img {
width: 4.6rem;
margin: 0 auto;
display: block;
}
.slide-box .ewm-area .yoho-txt01 {
background: url(//cdn.yoho.cn/yohocn/160315/images/txt01.png) no-repeat;
}
.slide-box .ewm-area .yoho-txt02 {
background: url(//cdn.yoho.cn/yohocn/160315/images/txt02.png) no-repeat;
}
.slide-box .ewm-area .yoho-txt01,
.slide-box .ewm-area .yoho-txt02 {
width: 3.3rem;
height: 0.7rem;
display: block;
margin: 0 auto;
background-size: contain;
}
.slide-box .ewm-area .ewm-info {
background: url(//cdn.yoho.cn/yohocn/160315/images/ewm-info.png) no-repeat;
width: 7rem;
height: 0.7rem;
margin: 0.4rem auto 0 auto;
background-size: contain;
clear: both;
}
.slide-box .ewm-area .ewm-yoho {
height: 5.4rem;
width: 4.6rem;
}
.swiper-yohobuy {
background: url(//cdn.yoho.cn/yohocn/160315/images/yohobuy.png) no-repeat;
}
.swiper-yoho {
background: url(//cdn.yoho.cn/yohocn/160315/images/yoho.png) no-repeat;
}
.swiper-show {
background: url(//cdn.yoho.cn/yohocn/160315/images/show.png) no-repeat;
}
.swiper-mars {
background: url(//cdn.yoho.cn/yohocn/160315/images/mars.png) no-repeat;
}
.slide-box .bg {
display: block;
margin: 0 auto;
width: 12.5rem;
height: 19.2rem;
background-size: contain;
}
.slide-pagination {
margin: 0.125rem 0 0 0;
text-align: center;
}
.slide-pagination .swiper-pagination-bullet {
margin: 0 0.1rem;
}
.swiper-pagination-bullet-active {
background: #696969;
}
.footer {
text-align: center;
color: #555;
line-height: 16px;
font-size: 0.35rem;
box-shadow: none;
position: relative;
top: 5.3rem;
}
.mask {
background: rgba(0, 0, 0, 0.8);
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
height: 41rem;
z-index: 999;
display: none;
}
.mask .wx-img1 {
width: 7rem;
height: 2rem;
background: url(//cdn.yoho.cn/yohocn/160315/images/wx-img1.png) no-repeat;
background-size: contain;
position: fixed;
top: 0.4rem;
right: 1rem;
}
.mask .wx-img2 {
width: 16rem;
height: 9rem;
background: url(//cdn.yoho.cn/yohocn/160315/images/wx-img2.png) no-repeat;
background-size: cover;
position: absolute;
bottom: 4rem;
right: 50%;
margin-right: -8rem;
}
.mask .wx-img3 {
width: 16rem;
height: 16rem;
background: url(//cdn.yoho.cn/yohocn/160315/images/wx-img3.png) no-repeat;
background-size: cover;
position: absolute;
top: 2rem;
right: 50%;
margin-right: -7.7rem;
display: none;
}
... ...
... ... @@ -153,6 +153,7 @@
background-size: contain;
}
.float-layer {
opacity: 0;
height: 128px;
background: rgba(68, 68, 68, 0.95);
position: fixed;
... ...
... ... @@ -45,30 +45,26 @@
}
}
.banner-list {
height: 100PX;
}
.banner-center-swiper {
background: #fff;
width: 100%;
height: 100PX;
height: 200px;
overflow: hidden;
.banner-list {
height: 100PX;
height: 200px;
li {
float: left;
width: 100%;
height: 100PX;
height: 200px;
a {
position: relative;
display: block;
width: 100%;
height: 100%;
line-height: 100PX;
line-height: 200px;
font-size: 0;
}
... ...
... ... @@ -6,9 +6,6 @@
overflow: hidden;
&.iswechat {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 90px;
line-height: 90px;
... ...
... ... @@ -24,23 +24,25 @@
.brand {
float: left;
width: 158px;
height: 174px;
border-right: 1px solid #e0e0e0;
border-top: 1px solid #e0e0e0;
background-color: #e0e0e0;
width: 160px;
height: 160px;
overflow: hidden;
padding: 1PX 1PX 0 0;
&:nth-child(4n + 1) {
padding: 1PX 0 0 0;
}
.brand-logo {
display: table-cell;
width: 158px;
height: 128px;
line-height: 128px;
width: 100%;
height: 100%;
text-align: center;
font-size: 0;
vertical-align: middle;
img {
max-width: 100%;
width: 100%;
height: 100%;
}
}
... ... @@ -65,9 +67,8 @@
.more {
float: left;
width: 317px;
height: 174px;
border-top: 1px solid #e0e0e0;
width: 320px;
height: 160px;
overflow: hidden;
a {
... ...
... ... @@ -539,6 +539,7 @@
line-height: 90px;
background-image: linear-gradient(#323232, #414141);
overflow: hidden;
position: relative;
.iconfont {
color: #fff;
... ...
... ... @@ -126,6 +126,7 @@
}
.float-layer {
opacity: 0;
height: 44PX;
background: rgba(68, 68, 68, 0.95);
position: fixed;
... ...