function packageFun() {
var length = 0;
change = setInterval(function () {
length++;
if (length == $("#FirstPage li").length) {
length = 0;
}
show(length);
}, 5000);
function show(length) {
$("#FirstPage li").eq(length - 1).fadeOut(1000); //将上一张图片隐藏
$("#FirstPage li").eq(length).fadeIn(1000); //将这张图片出现
};
}
packageFun();
怎么讲这个函数封装为面向对象的函数,谢谢各位大哥~
function packageFun(id) {
var length = 0;
var change = setInterval(function () {
length++;
if (length == $("#" + id + " li").length) {
length = 0;
}
show(length);
}, 5000);
function show(length) {
$("#" + id + " li").eq(length - 1).fadeOut(1000); //将上一张图片隐藏
$("#" + id + " li").eq(length).fadeIn(1000); //将这张图片出现
}
}
new packageFun('FirstPage');
function PackageFun(options){
this.length = 0;
this.t = 5000;
this.animationTime = 1000;
this.init(options);
}
PackageFun.prototype.init = function(options){
this.el = options.el;
this.t = options.t || this.t;
this.animationTime = options.animationTime || this.animationTime;
if((typeof this.el).toLowerCase() !== "string") return false;
this.$els = $('#' + this.el + ' li');
this.$length = this.$els.length;
this.change();
}
PackageFun.prototype.change = function(){
var _self = this;
this.timer = setInterval(function(){
_self.length ++;
if(_self.length === _self.$length){
_self.length = 0
}
_self.show(_self.length);
},this.t)
}
PackageFun.prototype.show = function(length){
var t = this.animationTime;
this.$els.eq(length - 1).fadeOut(t);
this.$els.eq(length).fadeIn(t)
}
new PackageFun({
el:'FirstPage'
})
方法如上,不过能改进的地放,比如将setInterval改为setTimeout,如果兼容高版本可以使用document.querySelector选择器不必使用jq的选择器,以及添加动画方法等
function packageFun(id) {
var length = 0;
var change = setInterval(function () {
length++;
if (length == $("#" + id + " li").length) {
length = 0;
}
show(length);
}, 5000);
}
packageFun.prototype.show = function(length){
$("#" + id + " li").eq(length - 1).fadeOut(1000); //将上一张图片隐藏
$("#" + id + " li").eq(length).fadeIn(1000); //将这张图片出现
}
new packageFun('FirstPage');
是这样吗