/* 2017-03-20 * superslide alpha开发版 * 轻松解决网站大部分特效展示问题 * 详尽信息请看官网:http://www.superslide2.com/ * * copyright 2011-2017, 大话主席 * * 请尊重原创,保留头部版权 * 在保留版权的前提下可应用于个人或商业用途 * v3.0: 1、修复 mouseoverstop 和 autoplay均为false下,点击切换按钮后会自动播放bug; 2、intertime默认值改为4000; 3、vis默认值改为"auto" 4、scroll默认值改为"auto" 5、增加参数 responsive -- 默认值ture,是否开启响应式功能 6、增加参数 responsivefun -- 响应式回调函数 7、增加参数 responsivefuntime -- 默认值100,单位毫秒,响应式回调函数执行间隔 8、增加参数 autoheight -- 默认值true,自动适配内容高度,effect:"left或leftloop",vis:1,scroll:1时有效 9、增加参数 cantouch -- 默认值"auto",是否带触摸拖拽效果,pc上是鼠标拖拽模拟触摸;可选"auto"|true|false;auto情况下是除了fade、fold、slidedown不带触摸,其它都带 10、重新设计"fold"的实现方式,不再需要计算宽高,现在可以自适应高度 */ (function ($, win) { $.fn.slide = function (options) { $.fn.slide.defaults = { type: "slide", effect: "fade", autoplay: false, delaytime: 500, intertime: 4000, triggertime: 150, defaultindex: 0, titcell: ".hd li", maincell: ".bd", targetcell: null, trigger: "mouseover", scroll: "auto", vis: "auto", titonclassname: "on", autopage: false, prevcell: ".prev", nextcell: ".next", pagestatecell: ".pagestate", opp: false, pnloop: true, easing: "swing", startfun: null, endfun: null, switchload: null, playstatecell: ".playstate", mouseoverstop: true, defaultplay: true, returndefault: false, responsive: true, responsivefun: null, responsivefuntime: 100, autoheight: true, cantouch: "auto" }; var ary = []; var createobj = function (opts, slider) { var _this = this; var effect = opts.effect; var prevbtn = $(opts.prevcell, slider); var nextbtn = $(opts.nextcell, slider); var pagestate = $(opts.pagestatecell, slider); var playstate = $(opts.playstatecell, slider); var navobj = $(opts.titcell, slider); //导航子元素结合 var navobjsize = navobj.size(); var conbox = $(opts.maincell, slider); //内容元素父层对象 var conboxsize = conbox.children().size(); var sload = opts.switchload; var tarobj = $(opts.targetcell, slider); /*字符串转换*/ var index = parseint(opts.defaultindex); var delaytime = parseint(opts.delaytime); var intertime = parseint(opts.intertime); var triggertime = parseint(opts.triggertime); var scroll = isnan(opts.scroll) ? "auto" : parseint(opts.scroll); var vis = isnan(opts.vis) ? "auto" : parseint(opts.vis); var autoplay = (opts.autoplay == "false" || opts.autoplay == false) ? false : true; var opp = (opts.opp == "false" || opts.opp == false) ? false : true; var autopage = (opts.autopage == "false" || opts.autopage == false) ? false : true; var pnloop = (opts.pnloop == "false" || opts.pnloop == false) ? false : true; var mouseoverstop = (opts.mouseoverstop == "false" || opts.mouseoverstop == false) ? false : true; var defaultplay = (opts.defaultplay == "false" || opts.defaultplay == false) ? false : true; var returndefault = (opts.returndefault == "false" || opts.returndefault == false) ? false : true; var cantouch = opts.cantouch; if (cantouch == "auto") { if (("left leftloop leftmarquee top toploop topmarquee").indexof(effect) != -1) { cantouch = true; } else { cantouch = false; } } else { cantouch = (opts.cantouch == "false" || opts.cantouch == false) ? false : true; } //内部使用变量 var slideh = 0; var slidew = 0; var selfw = 0; var selfh = 0; var easing = opts.easing; var inter = null; //autoplay-setinterval var mst = null; //trigger-settimeout var rtnst = null; //returndefault-settimeout var titon = opts.titonclassname; var onindex = navobj.index(slider.find("." + titon)); var oldindex = index = onindex == -1 ? index : onindex; var defaultindex = index; var scrollnum = 0; var _ind = index; var clonenum = 0; var _tar; var ismarq = effect == "leftmarquee" || effect == "topmarquee" ? true : false; var islefteffect = ("left leftloop leftmarquee fade fold").indexof(effect) == -1 ? false : true;