...
|
...
|
@@ -3,119 +3,44 @@ |
|
|
* @author: xuqi<qi.xu@yoho.cn>
|
|
|
* @date: 2015/10/13
|
|
|
*/
|
|
|
require("guang/info-index.page.css")
|
|
|
require('guang/info-index.page.css');
|
|
|
|
|
|
var $ = require('yoho-jquery'),
|
|
|
ellipsis = require('yoho-mlellipsis'),
|
|
|
lazyLoad = require('yoho-jquery-lazyload');
|
|
|
//IScroll = require('yoho-iscroll/build/iscroll-probe');
|
|
|
|
|
|
var $authorIntro = $('.author .intro');
|
|
|
|
|
|
var pageInIscroll = false;
|
|
|
|
|
|
var hasCollocationBlock = $('.collocation-block').length > 0 ? true : false;
|
|
|
|
|
|
// collocation block variable
|
|
|
var thumbWidth = 0,
|
|
|
$fixedThumbContainer = $(''),
|
|
|
$coBlock, $thumbContainer, $thumbs, $prods,
|
|
|
scrollToEl,
|
|
|
myScroll,
|
|
|
winW = $(window).width();
|
|
|
|
|
|
scrollToEl = document.querySelector('#wrapper .collocation-block');
|
|
|
|
|
|
var $fixedThumbContainer = $(''),
|
|
|
$coBlock,
|
|
|
$thumbContainer = $('.thumb-container');
|
|
|
|
|
|
require('../common');
|
|
|
require('../plugin/wx-share')();
|
|
|
require('./detail-dynamic');
|
|
|
|
|
|
var CollactionBlock = require('./collocation-block');
|
|
|
|
|
|
$('#wrapper').css({
|
|
|
'overflow-y': 'scroll'
|
|
|
});
|
|
|
|
|
|
/**
|
|
|
* 计算搭配的箭头的位置
|
|
|
* @param $curPos 当前focus的搭配项
|
|
|
*/
|
|
|
function posCollocationArrow($curCo) {
|
|
|
var left = $curCo.offset().left,
|
|
|
bgPos = -winW + left + (thumbWidth / 2) + 'px';
|
|
|
|
|
|
$thumbContainer.css({
|
|
|
backgroundPosition: bgPos + ' bottom'
|
|
|
});
|
|
|
|
|
|
if (pageInIscroll) {
|
|
|
$fixedThumbContainer.css({
|
|
|
backgroundPosition: bgPos + ' bottom'
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 搭配thumb的touch事件句柄
|
|
|
function thumbTouchEvt(e) {
|
|
|
var $curCo = $(e.currentTarget),
|
|
|
index = $curCo.index(),
|
|
|
$brother, $brotherCo,
|
|
|
$curProds;
|
|
|
|
|
|
if ($curCo.hasClass('focus')) {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
$thumbs.filter('.focus').removeClass('focus');
|
|
|
|
|
|
if (pageInIscroll) {
|
|
|
if ($curCo.closest('.fixed-thumb-container').length > 0) {
|
|
|
$brother = $thumbContainer;
|
|
|
} else {
|
|
|
$brother = $fixedThumbContainer;
|
|
|
}
|
|
|
|
|
|
$brotherCo = $brother.find('.thumb').eq(index);
|
|
|
$fixedThumbContainer.find('.thumb.focus').removeClass('focus');
|
|
|
$brotherCo.addClass('focus');
|
|
|
}
|
|
|
|
|
|
$curCo.addClass('focus');
|
|
|
|
|
|
// 定位arrow
|
|
|
posCollocationArrow($curCo);
|
|
|
|
|
|
$prods.not('.hide').addClass('hide');
|
|
|
$curProds = $prods.eq(index);
|
|
|
$curProds.removeClass('hide');
|
|
|
|
|
|
//
|
|
|
lazyLoad($curProds.find('.lazy'));
|
|
|
|
|
|
if (pageInIscroll) {
|
|
|
if (myScroll) {
|
|
|
myScroll.scrollToElement(scrollToEl, 400);
|
|
|
}
|
|
|
} else {
|
|
|
$('body').animate({
|
|
|
scrollTop: $coBlock.offset().top
|
|
|
}, 400);
|
|
|
}
|
|
|
|
|
|
myScroll && myScroll.refresh();
|
|
|
}
|
|
|
|
|
|
// 初始化iscroll
|
|
|
function initIscroll() {
|
|
|
var $scroller = $('#scroller'),
|
|
|
$yohoHeader = $('.yoho-header');
|
|
|
|
|
|
var $yohoHeader = $('.yoho-header');
|
|
|
var hH = 0,
|
|
|
winH, tcH, cbH, cbTop, fixedThumbDom;
|
|
|
|
|
|
if (CollactionBlock.exists()) {
|
|
|
new CollactionBlock();
|
|
|
}
|
|
|
|
|
|
// 考虑通用头部的影响:对offset().top以及winH做对应偏移
|
|
|
if ($yohoHeader.length > 0) {
|
|
|
hH = $yohoHeader.outerHeight();
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
myScroll = new IScroll('#wrapper', {
|
|
|
probeType: 3,
|
...
|
...
|
@@ -126,12 +51,12 @@ function initIscroll() { |
|
|
e.preventDefault();
|
|
|
}, false);
|
|
|
|
|
|
if (!hasCollocationBlock) {
|
|
|
myScroll.on('scroll', function() {
|
|
|
$scroller.trigger('scroll');
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
if (!hasCollocationBlock) {
|
|
|
myScroll.on('scroll', function() {
|
|
|
$scroller.trigger('scroll');
|
|
|
});
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
*/
|
|
|
|
...
|
...
|
@@ -139,14 +64,15 @@ function initIscroll() { |
|
|
winH = $(window).height() - hH;
|
|
|
fixedThumbDom = $fixedThumbContainer[0];
|
|
|
|
|
|
tcH = $thumbContainer.outerHeight();
|
|
|
cbH = $coBlock.outerHeight();
|
|
|
cbTop = $coBlock.offset().top - hH;
|
|
|
tcH = $thumbContainer ? $thumbContainer.outerHeight() : 0;
|
|
|
if ($coBlock) {
|
|
|
cbH = $coBlock.outerHeight();
|
|
|
cbTop = $coBlock.offset().top - hH;
|
|
|
}
|
|
|
|
|
|
$(window).on('scroll', function() {
|
|
|
console.log(1);
|
|
|
var sTop = -this.y;
|
|
|
var classList = fixedThumbDom.className;
|
|
|
var classList = fixedThumbDom && fixedThumbDom.className;
|
|
|
|
|
|
if (sTop <= cbTop - winH + tcH) {
|
|
|
if (classList.indexOf('fixed-bottom') === -1) {
|
...
|
...
|
@@ -181,7 +107,6 @@ function initIscroll() { |
|
|
.removeClass('absolute');
|
|
|
}
|
|
|
}
|
|
|
//$scroller.trigger('scroll');
|
|
|
});
|
|
|
}
|
|
|
|
...
|
...
|
@@ -200,8 +125,6 @@ function initIscroll() { |
|
|
// 初始化页面,包括是否使用iscorll初始化页面
|
|
|
// 接口暴露在HTML中,使用压缩名
|
|
|
(function() {
|
|
|
var useIscroll;
|
|
|
var isIphone = navigator.userAgent.indexOf('iPhone') > 0 ? true : false;
|
|
|
var $this, $title;
|
|
|
|
|
|
// pagecache 前端判断是否显示头
|
...
|
...
|
@@ -210,17 +133,10 @@ function initIscroll() { |
|
|
|
|
|
isHeader && $('#yoho-header').remove();
|
|
|
|
|
|
if ($('.guang-detail-page').hasClass('guang-detail')) {
|
|
|
useIscroll = true;
|
|
|
} else if ($('.guang-detail-page').hasClass('guang-ezine')) {
|
|
|
useIscroll = false;
|
|
|
}
|
|
|
$('.main-wrap').css({
|
|
|
position: 'static'
|
|
|
});
|
|
|
|
|
|
pageInIscroll = isIphone && useIscroll;
|
|
|
|
|
|
ellipsis.init();
|
|
|
|
|
|
if ($('.good-detail-text .name').length > 0) {
|
...
|
...
|
@@ -243,49 +159,7 @@ function initIscroll() { |
|
|
parseInt($authorIntro.css('margin-left'), 10))) {
|
|
|
$authorIntro.css('padding-top', 0);
|
|
|
}
|
|
|
/*
|
|
|
|
|
|
if (pageInIscroll) {
|
|
|
if ($('.yoho-header').length > 0) {
|
|
|
$('#wrapper').addClass('ios has-head');
|
|
|
} else {
|
|
|
$('#wrapper').addClass('ios');
|
|
|
}
|
|
|
}
|
|
|
*/
|
|
|
|
|
|
// 有搭配模块,iphone使用iscroll初始化滚动并有固定的搭配栏,其他的没有
|
|
|
if (hasCollocationBlock) {
|
|
|
$coBlock = $('.collocation-block');
|
|
|
$thumbContainer = $coBlock.children('.thumb-container');
|
|
|
$thumbs = $thumbContainer.find('li');
|
|
|
$prods = $coBlock.find('.prod');
|
|
|
|
|
|
thumbWidth = $thumbs.width();
|
|
|
|
|
|
if (pageInIscroll) {
|
|
|
$fixedThumbContainer = $('#wrapper')
|
|
|
.after($thumbContainer.clone().addClass('fixed-thumb-container fixed-bottom'))
|
|
|
.next('.thumb-container');
|
|
|
|
|
|
// load img of fixed thumb container
|
|
|
lazyLoad($fixedThumbContainer.find('.lazy'), {
|
|
|
event: 'sporty'
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// Init Arrow Position
|
|
|
posCollocationArrow($thumbs.filter('.focus'));
|
|
|
|
|
|
$thumbContainer.delegate('.thumb', 'touchend', thumbTouchEvt);
|
|
|
|
|
|
if (pageInIscroll) {
|
|
|
$fixedThumbContainer.delegate('.thumb', 'touchend', thumbTouchEvt);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (pageInIscroll) {
|
|
|
initIscroll();
|
|
|
}
|
|
|
initIscroll();
|
|
|
}());
|
|
|
|
...
|
...
|
|