原生js如何实现无缝轮播图效果
这篇文章主要介绍了原生js如何实现无缝轮播图效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

在盱眙等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站建设、做网站 网站设计制作按需制作,公司网站建设,企业网站建设,成都品牌网站建设,营销型网站建设,成都外贸网站制作,盱眙网站建设费用合理。
请看代码
无缝轮播图-原生js封装
');
this.container[0].addEventListener('click', function(e) {
self.events(e)
}, false);
this.container[0].addEventListener('mouseover', function(e) {
self.eventsover(e)
}, false);
},
circle: function() {
var self = this;
var pagination = document.createElement("div");
pagination.className = "bannerha-pagination";
for (var i = 0; i < self.len - 2; i++) {
var btnspan = document.createElement("span");
btnspan.className = "bannerha-pagination-bullet";
pagination.appendChild(btnspan);
}
this.containers.appendChild(pagination);
this.bullet = this.container.find(".bannerha-pagination-bullet");
this.bullet[0].classList.add("bannerha-pagination-bullet-active");
for (var i = 0; i < this.bullet.length; i++) {
! function(i) {
self.bullet[i].addEventListener('click', function(e) {
if (!self.flag) {
return;
}
if (this.className.indexOf('bannerha-pagination-bullet-active') > -1) {
return;
}
var myIndex = i - (self.num - 1);
var offset = -self.liW * myIndex;
self.go(offset);
self.num = i + 1;
self.showButton();
}, false);
}(i);
}
},
events: function(e) {
var self = this;
var oSrc = e.srcElement || e.target;
if (oSrc.tagName.toLowerCase() == 'div' && oSrc.className.indexOf('bannerha-button-prev') > -1) {
if (!this.flag) {
return;
}
self.go(this.liW);
if (self.params.circle) {
self.showButton();
}
}
if (oSrc.tagName.toLowerCase() == 'div' && oSrc.className.indexOf('bannerha-button-next') > -1) {
if (!this.flag) {
return;
}
self.go(-this.liW);
if (self.params.circle) {
self.showButton();
}
}
},
eventsover: function(e) {
var self = this;
var oSrc = e.srcElement || e.target;
if (oSrc.className.indexOf('bannerha-button') > -1) {
oSrc.classList.add("active")
oSrc.addEventListener('mouseout', function(e) {
oSrc.classList.remove("active");
}, false);
}
},
showButton: function() {
var self = this;
var num = this.num - 1;
for (var i = 0; i < this.bullet.length; i++) {
this.bullet[i].classList.remove("bannerha-pagination-bullet-active");
}
this.bullet[num].classList.add("bannerha-pagination-bullet-active");
},
go: function(offset) {
var self = this;
if (self.flag) {
self.flag = false;
if (offset < 0) {
self.num++;
if (self.num > self.len - 2) {
self.num = 1;
}
}
if (offset > 0) {
self.num--;
if (self.num <= 0) {
self.num = self.len - 2
}
}
var srty = parseInt(self.oUl.style.left) + offset;
if (parseInt(self.oUl.style.left) < srty || parseInt(self.oUl.style.left) > srty) {
self.timer = setInterval(function() {
var mernum = parseInt(self.oUl.style.left);
var speed = (srty - mernum) / 10;
speed = speed > 0 ? Math.ceil(speed) : Math.floor(speed);
self.oUl.style.left = parseInt(self.oUl.style.left) + speed + 'px';
if (parseInt(self.oUl.style.left) == srty) {
clearInterval(self.timer);
self.oUl.style.left = srty + 'px';
if (srty > -self.liW) {
self.oUl.style.left = -self.liW * (self.len - 2) + 'px';
}
if (srty < -self.liW * (self.len - 2)) {
self.oUl.style.left = -self.liW + 'px';
}
self.flag = true;
}
}, self.params.speeds)
}
}
}
}
var r = (function() {
var e = function(e) {
var a = this,
t = 0;
for (t = 0; t < e.length; t++) {
a[t] = e[t];
}
return a.length = e.length, this
};
e.prototype = {
addClass: function(e) {
if ("undefined" == typeof e) return this;
for (var a = e.split(" "), t = 0; t < a.length; t++)
for (var r = 0; r < this.length; r++) this[r].classList.add(a[t]);
return this
},
each: function(e) {
for (var a = 0; a < this.length; a++) e.call(this[a], a, this[a]);
return this
},
html: function(e) {
if ("undefined" == typeof e) return this[0] ? this[0].innerHTML : void 0;
for (var a = 0; a < this.length; a++) this[a].innerHTML = e;
return this
},
find: function(a) {
for (var t = [], r = 0; r < this.length; r++)
for (var i = this[r].querySelectorAll(a), s = 0; s < i.length; s++) t.push(i[s]);
return new e(t)
},
append: function(a) {
var t, r;
for (t = 0; t < this.length; t++)
if ("string" == typeof a) {
var i = document.createElement("div");
for (i.innerHTML = a; i.firstChild;) this[t].appendChild(i.firstChild)
} else if (a instanceof e)
for (r = 0; r < a.length; r++) this[t].appendChild(a[r]);
else this[t].appendChild(a);
return this
},
}
var a = function(a, t) {
var r = [],
i = 0;
if (a && !t && a instanceof e) {
return a;
}
if (a) {
if ("string" == typeof a) {
var s, n, o = a.trim();
if (o.indexOf("<") >= 0 && o.indexOf(">") >= 0) {
var l = "div";
for (0 === o.indexOf("
:~]/) ? (t || document).querySelectorAll(a) : [document.getElementById(a.split("#")[1])], i = 0; i < s.length; i++) s[i] && r.push(s[i])
} else if (a.nodeType || a === window || a === document) {
r.push(a);
} else if (a.length > 0 && a[0].nodeType) {
for (i = 0; i < a.length; i++) {
r.push(a[i]);
}
}
}
return new e(r)
};
return a;
}())
window.bannerha = Bannerha;
})()
/*封装代码*/