【发布时间】:2015-12-24 01:01:12
【问题描述】:
在滑块上工作,我注意到一切都很好 -
function Slider(element) {
this.i = 0;
this.element = element;
var self = this;
this.timer = window.setInterval(function() {
switch (self.i) {
case 0:
$(element).velocity({ translateX: "-33.3333%" });
self.i++;
break;
case 1:
$(element).velocity({ translateX: "-66.6666%" });
self.i++;
break;
case 2:
$(element).velocity({ translateX: "0%" });
self.i = 0;
break;
}
}, 2000);
}
Slider.prototype.stop = function() {
window.clearInterval(this.timer);
}
var i = 0;
$(".multi").each( function(){
label = "label_" + i;
window[label] = new Slider($(this));
console.log(window[label]);
console.log(label);
console.log(i)
i++;
});
$(".multi-nav a").click( function(e){
e.preventDefault();
number = $(this).parent().attr("class").split(" ").pop();
label = "label_" + number;
console.log(label)
console.log(window[label]);
window[label].stop();
});
演示 - http://codepen.io/JordanDWhalen/pen/QjGNYm
直到我添加动画以在停止间隔的事件的目标上切换类:
function Slider(element) {
this.i = 0;
this.element = element;
var self = this;
this.timer = window.setInterval(function() {
switch (self.i) {
case 0:
$(element).velocity({ translateX: "-33.3333%" });
$(".multi-nav a").velocity({ opacity: ".5" });
$(".multi-nav ." + self.i).velocity({ opacity: "1" });
self.i++;
break;
case 1:
$(element).velocity({ translateX: "-66.6666%" });
$(".multi-nav a").velocity({ opacity: ".5" });
$(".multi-nav ." + self.i).velocity({ opacity: "1" });
self.i++;
break;
case 2:
$(element).velocity({ translateX: "0%" });
$(".multi-nav a").velocity({ opacity: ".5" });
$(".multi-nav ." + self.i).velocity({ opacity: "1" });
self.i = 0;
break;
}
}, 2000);
}
Slider.prototype.stop = function() {
window.clearInterval(this.timer);
}
var i = 0;
$(".multi").each( function(){
label = "label_" + i;
window[label] = new Slider($(this));
console.log(window[label]);
console.log(label);
console.log(i)
i++;
});
$(".multi-nav a").click( function(e){
e.preventDefault();
number = $(this).parent().attr("class").split(" ").pop();
label = "label_" + number;
console.log(label)
console.log(window[label]);
window[label].stop();
});
【问题讨论】:
-
您应该使用
.data将滑块实例附加到链接元素,而不是“最后一个类名”加上编号的全局window属性
标签: javascript jquery css oop velocity.js