/* by:Yangyunhe——David Yang ***阴阳师轮播图插件 ***插件支持轮播所需图片数量为至少为四张 ***在调用该插件时传入图片数量 */ (function($) { $.fn.gallery_slider = function(options) { var _ops = $.extend({ imgNum: 5 , //图片数量 imgArr: [], //图片地址数组 slider_html: '', //轮播容器html结构 }, options); var _this = $(this), _imgNum = _ops.imgNum, //图片数量 _imgArr = _ops.imgArr, //图片地址数组 _slider_html = _ops.slider_html, //轮播容器html结构 _gallery_item_left = '.prev', //左侧按钮class _gallery_item_right = '.next', //右侧按钮class _front_side = '.front_side', //中间图片容器class _gallery_left_middle = '.gallery_left_middle', //左侧图片容器class _gallery_right_middle = '.gallery_right_middle', //右侧图片容器class _gallery_out = '.gallery_out', //隐藏图片容器class _threeD_gallery_item = '.threeD_gallery_item', //图片容器class gallery_out_html=``, //隐藏图片容器html结构 gallery_out_htmlNum = _imgNum - 3; //隐藏图片容器数量 //拼接隐藏容器html结构 if(gallery_out_htmlNum > 0){ for(var i = 0;i < gallery_out_htmlNum;i++){ gallery_out_html += `` } } //拼接轮播容器html结构 _slider_html = ` `; //添加轮播容器html结构到DOM中 _this.append(_slider_html); //左侧按钮绑定点击事件 _this.find(_gallery_item_left).on('click',function(){ var idx = parseInt(_this.find(_gallery_left_middle).index()); //当前展示图片逻辑 _this.find(_threeD_gallery_item).eq(idx).removeClass('gallery_left_middle').addClass('front_side'); //当idx值为0时,执行逻辑 _this.find(_threeD_gallery_item).eq(idx == 0 ? idx + _imgNum - 1 : idx - 1).removeClass('gallery_out').addClass('gallery_left_middle'); //当idx值为_imgNum - 3时,执行逻辑 _this.find(_threeD_gallery_item).eq(idx == _imgNum - 3 ? idx + 2 : idx - _imgNum + 2).removeClass('gallery_right_middle').addClass('gallery_out'); //当idx值为_imgNum - 2时,执行逻辑 _this.find(_threeD_gallery_item).eq(idx == _imgNum - 2 ? idx + 1 : idx - _imgNum + 1).removeClass('front_side').addClass('gallery_right_middle'); }) //右侧按钮绑定点击事件 _this.find(_gallery_item_right).on('click',function(){ var idx = parseInt(_this.find(_gallery_right_middle).index()); //当前展示图片逻辑 _this.find(_threeD_gallery_item).eq(idx).removeClass('gallery_right_middle').addClass('front_side'); //当idx值为0时,执行逻辑 _this.find(_threeD_gallery_item).eq(idx == 0 ? idx + _imgNum - 1 : idx - 1).removeClass('front_side').addClass('gallery_left_middle'); //当idx值为1时,执行逻辑 _this.find(_threeD_gallery_item).eq(idx == 1 ? idx + _imgNum - 2 : idx - 2).removeClass('gallery_left_middle').addClass('gallery_out'); //当idx值为_imgNum - 2时,执行逻辑 _this.find(_threeD_gallery_item).eq(idx == _imgNum - 2 ? idx + 1 : idx - _imgNum + 1).removeClass('gallery_out').addClass('gallery_right_middle'); }) }; })(jQuery);