蝙蝠岛资源网 Design By www.hbtsch.com
本文实例为大家分享了JavaScript轮播图组件代码,供大家参考,具体内容如下
//轮播图组件
function Rolling(o) {
this.index = ++o.index || 1; //当前滚动的位置,当index大于可轮播的次数listLength或者等于0,为不可滚动状态
this.num = o.num || 1; //默认滚动一个列表
this.obj = o.obj || null; //要轮播的对象ul
this.perObj = o.perObj || null; //向上翻页的按钮对象
this.nextObj = o.nextObj || null; //向下翻页的按钮对象
this.focusPoint = o.focusPoint || null; //焦点对象,默认为null。意思不开启焦点对象,如要开启可传入焦点对象可自动开启
this.focusClass = o.focusClass || 'mien-active'; //当前焦点位置类名
this.replaceBtn = o.replaceBtn || false;//是否在轮播到第一页或最后一页时替换翻页按钮图片。默认值为true,并替换按钮图片为re+图片名。如:per.png替换成re-per.ping
console.log(o.replaceBtn)
this.listLength = Math.ceil(o.obj.find('li').length / this.num); //可轮播的次数
this.listObj = o.obj.children('li');
this.listWidth =this.listObj.width() + parseInt(this.listObj.css('margin-left')) + parseInt(this.listObj.css('margin-right')); //列表宽度
this.init(); //初始化
};
Rolling.prototype.init = function() {
var thisObj = this;
this.initLeft();
this.replaceFun();
if(this.focusPoint !== null) {
this.createFocusPoint();
}
this.perObj.unbind('click').on('click', function() {
thisObj.rollPrev();
});
this.nextObj.unbind('click').on('click', function() {
thisObj.rollNext();
});
}
//创建焦点,并给当前位置的焦点添加类mien-active
Rolling.prototype.createFocusPoint = function() {
var str = '',
thisObj = this;
for(var i = 0; i < this.listLength; i++) {
if(i == this.index - 1) {
str += '<li class="' + this.focusClass + '"></li>';
} else {
str += '<li></li>';
}
}
this.focusPoint.append(str);
this.focusPoint.children().click(function() {
var oldIndex = $('.' + thisObj.focusClass).index() + 1; //之前的焦点位置
var index = $(this).index() + 1; //当前点击的焦点
var sum = index - oldIndex;
var perObject = thisObj.perObj.find('img');
var nextObject = thisObj.nextObj.find('img');
if (index == 1 && !thisObj.replaceBtn){
perObject.attr('src',perObject.attr('data-src'));
nextObject.attr('src',nextObject.attr('data-src'));
}else if (index == thisObj.listLength && !thisObj.replaceBtn){
perObject.attr('src',perObject.attr('re-src'));
nextObject.attr('src',nextObject.attr('re-src'));
}else if (!thisObj.replaceBtn){
perObject.attr('src',perObject.attr('re-src'));
nextObject.attr('src',nextObject.attr('data-src'));
}
thisObj.index += sum;
if(sum > 0) {
thisObj.obj.animate({
marginLeft: '-=' + Math.abs(sum) * thisObj.num * thisObj.listWidth + 'px'
});
}
if(sum < 0) {
thisObj.obj.animate({
marginLeft: '+=' + Math.abs(sum) * thisObj.num * thisObj.listWidth + 'px'
});
}
$(this).addClass(thisObj.focusClass).siblings().removeClass(thisObj.focusClass);
});
}
Rolling.prototype.initLeft = function() {
if(this.index == 1) {
return;
}
this.obj.css('margin-left', -(this.index - 1) * this.listWidth); //初始化全屏图片显示的位置
}
Rolling.prototype.rollPrev = function() {
--this.index;
//当点击到第一页就return
if (this.index <= 1 && !this.replaceBtn){
this.perObj.find('img').attr('src',this.perObj.find('img').attr('data-src'));
}
if(!this.thisIndex()) {
++this.index;
return;
}
if (!this.replaceBtn){
this.nextObj.find('img').attr('src',this.nextObj.find('img').attr('data-src'));
}
this.obj.animate({
marginLeft: '+=' + this.num * this.listWidth + 'px'
});
if(this.focusPoint !== null) {
$('.' + this.focusClass).removeClass(this.focusClass).prev().addClass(this.focusClass);
}
}
Rolling.prototype.rollNext = function() {
++this.index;
if (this.index == this.listLength && !this.replaceBtn){
this.nextObj.find('img').attr('src',this.nextObj.find('img').attr('re-src'));
}
//当点击到最后一页就return
if(!this.thisIndex()) {
--this.index;
return;
}
if (!this.replaceBtn){
this.perObj.find('img').attr('src',this.perObj.find('img').attr('re-src'));
}
this.obj.animate({
marginLeft: '-=' + this.num * this.listWidth + 'px'
});
if(this.focusPoint !== null) {
$('.' + this.focusClass).removeClass(this.focusClass).next().addClass(this.focusClass);
}
}
Rolling.prototype.replaceFun = function(){
var perObject = this.perObj.find('img'),
nextObject = this.nextObj.find('img');
var perSrc = perObject.attr('src'),
nextSrc = nextObject.attr('src');
perObject.attr({'data-src':perSrc,'re-src':this.splitSrc(perSrc)});
nextObject.attr({'data-src':nextSrc,'re-src':this.splitSrc(nextSrc)});
}
Rolling.prototype.splitSrc = function(str){
var list = str.split('/');
var data = list[list.length-1];
var sub = data.substr(0,data.indexOf('.'));
return str.replace(sub,'re-' + sub);
}
Rolling.prototype.thisIndex = function() {
if(this.index > this.listLength | this.index <= 0) {
return false;
}
return true;
}
function createRolling(o) {
return new Rolling(o);
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
标签:
js,轮播图,组件
蝙蝠岛资源网 Design By www.hbtsch.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
蝙蝠岛资源网 Design By www.hbtsch.com
暂无轮播图组件js代码的评论...
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
2025年12月14日
2025年12月14日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]