Я знаю, что это не самый эффективный или лучший способ решить эту проблему, но я в конечном итоге создание две функции JQuery, для выполнения этой задачи:
$.fn.pingpongscroll = function() {
var delay = 30;
$(this).wrapInner('<span>');
var contentWidth = $(this).children('span').width();
var boxWidth = $(this).width();
if (contentWidth > boxWidth) {
var startIndent = parseInt($(this).css('text-indent'));
var currIndent = startIndent;
var left = true;
$(this).pingpongscrollstep(contentWidth, startIndent, currIndent, left, delay);
}
};
$.fn.pingpongscrollstep = function (contentWidth, startIndent, currIndent, left, delay) {
if($(this).length != 0) {
thisdelay = delay;
if(left) {
if(contentWidth + currIndent > $(this).width()) {
currIndent = currIndent - 1;
$(this).css('text-indent', currIndent);
} else {
left = false;
thisdelay = thisdelay*20;
}
} else {
if(currIndent < startIndent) {
currIndent = currIndent + 1;
$(this).css('text-indent', currIndent);
} else {
left = true;
thisdelay = thisdelay*30;
}
}
var thiselement = this;
setTimeout(function(){
$(thiselement).pingpongscrollstep(contentWidth, startIndent, currIndent, left, delay);
}, thisdelay);
}
};
Хотя эти работы хорошо, я уверен, что это не обычный способ обработки прокрутки. Кроме того, я понятия не имею, как сделать вторую функцию частным членом первой, поэтому ее нельзя вызывать на сайте ... кто-нибудь знает, как это сделать?
К сожалению, этот плагин непосредственно имитирует метку marquee и не предлагает прокрутку пинг-понга. –