/*! * @project : * @version : 1.0.0 * @author : * @update : 2015-06-12 10:12:50 am */ console.log("dsad") var Util = { getParam : function(name) { //先获取#后面的参数 var str = document.location.hash.substr(2); var value = this.getParam2(name, str); if (value == null) { str = document.location.search.substr(1); value = this.getParam2(name, str); } return value; }, getParam2 : function(name, str) { //获取参数name的值 var reg = new RegExp("(^|!|&|\\?)" + name + "=([^&]*)(&|$)"); //再获取?后面的参数 var r = str.match(reg); if (r != null) { try { return decodeURIComponent(r[2]); } catch (e) { console.log(e + "r[2]:" + r[2]); return null; } } return null; }, isFunction: function (obj) { return Object.prototype.toString.call(obj) === "[object Function]"; }, getScript: function (url, callback) { var head = document.getElementsByTagName("head")[0] || document.documentElement; var script = document.createElement("script"); script.type = "text/javascript"; script.async = true; script.charset = "utf-8"; script.src = url; script.onload = script.onreadystatechange = function () { if (!script.readyState || /loaded|complete/.test(script.readyState)) { if (Util.isFunction(callback)) { callback(); } script.onload = script.onreadystatechange = null; if (script.parentNode) { script.parentNode.removeChild(script); } } }; head.insertBefore(script,null); } } var adv = { isiOS : navigator.userAgent.match(/(iPhone|iPod|iPad);?/i), //ios终端 swipeLocid : 166, //大图locid picsLocid : 167, //图集locid swiperAdvPos : false, //大图swiper id swiperGameInfo : {}, cssTmpl : '#rec-imgs{overflow: scroll;}\ .swiper-wrapper div.m-container{overflow: inherit;height: auto;}\ .ui-picHeader__adv{position: absolute;right: 10px;top: 2px;height: 44px;padding-left: 28px;line-height: 44px;font-size: 18px;color: #fff;}\ .ui-picShow__item .gameLink{position: absolute;top: 0;left: 0;width: 100%;height: 100%; z-index: 2;}\ .rec-list{overflow:hidden}\ .img-info-n .da-title-link{position: absolute;bottom: 0;left: 0;z-index: 999;width: 100%;height: 100%;}', swipeItemTmpl : '
\ \ \
', init : function (){ var self = this if(Util.getParam("isdebug")!=1) return $("head").append('') this.initSwiperAdvPos() this.getPicsDa() Util.getScript("//pub.dwstatic.com/common/js/dastat.js",function(){}); //滑动大图第二个链接-点击上报 $("body").on("click","#swContGameInfo",function(){ if(window.dwDaStat) window.dwDaStat.reportData($(this).get(0)) }) }, //大图广告 getSwipeDa : function(){ var self = this; console.log("获取大图广告") this.getDa(this.swipeLocid,function(ret){ self.swiperGameInfo = ret[0] $("#swipeGame1 img").attr({ "src" : self.swiperGameInfo.adSrc, "data-original":self.swiperGameInfo.adSrc }) $("#swipeGame1 .gameLink").attr({ "href":self.swiperGameInfo.adLink, "locid" : self.swipeLocid, "pid" : self.swiperGameInfo.adPid }) imgJson.picInfo[self.swiperAdvPos]={ add_intro : self.swiperGameInfo.title, title : self.swiperGameInfo.title } }) }, //图集广告 getPicsDa : function(){ // return; var self = this, $items = $(".rec-list").find("a"), advPos = [1,3]; this.getDa(this.picsLocid,function(ret){ for(var i=0;i' return i; }, getPicsDaDom : function(t){ var i = '
  • \
  • \ '+t.title+'\
  • \ ' return i; }, getDa(locid,callback){ var platform = this.isiOS ? "ios" : "android" $.ajax({ url: "http://da.duowan.com/loc/"+locid+"?platform="+platform, dataType: 'jsonp', success: function(ret) { callback && callback(ret) } }) }, //初始化swipe initSwiperAdvPos : function(){ var len = imgJson.picInfo.length if(len>=10) { var random = len > 15 ? 9+Math.floor(Math.random() * 5) : 9+Math.floor(Math.random() * (len-10)) console.log("广告位置:"+random) this.swiperAdvPos = random this.getSwipeDa() imgJson.picInfo.splice(random,0,{}) $(".swiper-wrapper").children(".swiper-item").eq(random).before(this.swipeItemTmpl); } }, //展示上报 showReport : function(curSwipe){ if(Util.getParam("isdebug")!=1) return //图集-广告 if (this.swiperAdvPos && curSwipe==this.swiperAdvPos) { $(".img-info-n").append(this.setDaTitleLink(this.swiperGameInfo)) $("#comment_url").before('
    广告
    ') $("#comment_url,#imgInfoContent,.img-info-n .m-img_num").hide() console.log("上报统计-swipeItem") if(window.dwDaStat) window.dwDaStat.reportData($("#swipeGame1 a").get(0),'loaded') //图集推荐-广告 } else if(curSwipe==imgJson.picInfo.length){ console.log("上报统计-图集") $(".rec-list .da-block-wrapper").each(function(){ if(window.dwDaStat) window.dwDaStat.reportData($(this).get(0),'loaded') }) }else { $("#swHeaderGameTag,#swContGameInfo").remove() $("#comment_url,#imgInfoContent,.img-info-n .m-img_num").show() } } } seajs.use(["zepto", "touch", "swiper", "iscroll", "hammer", "hbURL"], function() { function e(e) { $(".rec-list").css("visibility", "visible"), $("#comment_url").attr("href", imgJson.picInfo[e].comment_url), $(".ui-picHeader__reply").text(imgJson.picInfo[e].num), $(".ui-picHeader__title").hide(), $(".ui-picHeader__reply").show(), $(".ui-picHeader__backBtn").show(), $(".img-info-title").text(imgJson.picInfo[e].title), $(".m-img_num").html("" + (e + 1) + "/" + imgJson.picInfo.length), $("#imgInfoContent").html(imgJson.picInfo[e].add_intro), $(".ui-picHeader").show(), $(".img-info-n").show(), o && o.refresh() } function t() { transform = { scale: 1, startX: 0, startY: 0, endX: 0, endY: 0 }, r() } function n(e) { $('[name="imgItems"]').eq(e).attr("src", $('[name="imgItems"]').eq(e).attr("data-original")), $('[name="imgItems"]').eq(e + 1).attr("src", $('[name="imgItems"]').eq(e + 1).attr("data-original")), c = new Hammer($('[name="imgItems"]').eq(e)[0]), c.add(new Hammer.Pinch), c.add(new Hammer.Pan), c.on("pinchmove", function(e) { var t = $(e.target); $(t).removeClass("imgBackMin imgBackMax dbTap backTap"), e.scale >= 1 ? transform.scale < 3.5 && (transform.scale = transform.scale + .2 * (e.scale - 1)) : transform.scale >= .8 && (f.unlockSwipes(), transform.scale = transform.scale - .1 * (1 - e.scale)), r(t) }), c.on("pinchend", function(e) { if (transform.scale < 1) transform.scale = 1, $(e.target).addClass("imgBackMin"), setTimeout(function() { t() }, 200); else if (transform.scale > 2.8) { transform.scale = 2.8, $(e.target).addClass("imgBackMax"); var n = $(e.target); setTimeout(function() { r(n) }, 200) } }), c.on("panmove", function(e) { $(e.target).removeClass("imgBackMin imgBackMax dbTap backTap"); var t = e.target; if (transform.scale > 1 || $(t).width() <= $(document).width() && $(t).height() >= $(document).height()) { f.lockSwipes(); var n = ($(t).offset().top, $(document).height()) , a = $(t).height() , s = (a - n) / 2 + 100 , i = -(a - n) / 2 - 200 , o = ($(t).offset().left, $(document).width()) , m = $(t).width() , c = (m - o) / 4 , d = -c; if ($(t).width() <= $(document).width() && $(t).height() >= $(document).height()) { f.unlockSwipes(); var l = $(t); transform.endY = transform.startY + .8 * e.deltaY, transform.endY < s && transform.startY < transform.endY ? r(l) : transform.endY > i && transform.startY > transform.endY ? r(l) : transform.endY = transform.startY < transform.endY ? s : i } else if ($(t).width() > $(document).width() && $(t).height() <= $(document).height()) { var l = $(t); transform.endX = transform.startX + .8 * e.deltaX, transform.endX < c && transform.startX < transform.endX ? r(l) : transform.endX > d && transform.startX > transform.endX ? r(l) : (transform.endX = transform.startX < transform.endX ? c : d, f.unlockSwipes()) } else if ($(document).width() - ($(t).width() + $(t).offset().left) >= 0) f.unlockSwipes(); else if ($(t).offset().left >= 0) f.unlockSwipes(); else { var l = $(t); transform.endX = transform.startX + .8 * e.deltaX, transform.endY = transform.startY + .8 * e.deltaY, transform.endY < s && transform.startY < transform.endY ? r(l) : transform.endY > i && transform.startY > transform.endY ? r(l) : transform.endY = transform.startY < transform.endY ? s : i } } }), c.on("panend", function() { transform.startX = transform.endX, transform.startY = transform.endY }) } function r(e) { ("" === e || "undefined" == typeof e) && $('[name="imgItems"]').css({ "-webkit-transform": "scale3d(" + transform.scale + "," + transform.scale + "," + transform.scale + ") translate3d(" + transform.endX + "px," + transform.endY + "px,0)" }), $(e).css({ "-webkit-transform": "scale3d(" + transform.scale + "," + transform.scale + "," + transform.scale + ") translate3d(" + transform.endX + "px," + transform.endY + "px,0)" }) } document.ontouchmove = function() { return !1 } , $(".ui-picShow").css("height", $(document).height() - 30); for (var a = "", s = 0, i = imgJson.picInfo.length; i > s; s++) a += '
    \ \
    '; $(".swiper-wrapper").children(".swiper-item").first().before(a); //swipe广告位 adv.init() new IScroll("#rec-imgs",{ scrollbars: !0, mouseWheel: !0, shrinkScrollbars: "scale" }) var o, m, f = new Swiper(".ui-picShow",{ resizeReInit: !0, onInit: function() { var n = $(".swiper-slide "); $(".swiper-wrapper").width(n.width() * n.length), t(), e(0), o = new IScroll("#infoContent",{ scrollbars: !0, mouseWheel: !0, shrinkScrollbars: "scale" }) }, onSlideChangeEnd: function() { t(), f.activeIndex >= f.slides.length - 1 ? ($(".ui-picHeader").show(), $(".ui-picHeader__title").show(), $(".img-info-n").hide(), $(".ui-picHeader__reply").hide(), $(".ui-picHeader__backBtn").hide()) : (e(f.activeIndex), n(f.activeIndex)), $(".swiper-slide-active").find("img").attr("id", "onImg") adv.showReport(f.activeIndex) } }); $(".swiper-container").find("img").on("touchstart", function() { m = setTimeout(function() { "none" !== $(".ui-picHeader").css("display") ? ($(".ui-picHeader").hide(), $(".img-info-n").hide()) : ($(".ui-picHeader").show(), $(".img-info-n").show()) }, 100) }), $(".swiper-container").on("touchmove", function() { clearTimeout(m) }), $(".swiper-slide").find("img").on("doubleTap", function() { if (clearTimeout(m), 1 === transform.scale && 0 === transform.endX && 0 === transform.endY) { transform.scale = 2, $(this).removeClass("backTap").addClass("dbTap"); var e = $(this); setTimeout(function() { r(e) }, 200) } else f.unlockSwipes(), $(this).removeClass("dbTap").addClass("backTap"), setTimeout(function() { t() }, 200) }); var c; n(0) });