我需要在一行(从右到左)中滚动长文本i JavaScript。
目前我通过改变保证金来做到这一点 - 留下计时器。
//Change Margin
$('#sliderContentText').css('margin-left', -sliderOptions.currentMargin);
sliderOptions.currentMargin=sliderOptions.currentMargin+sliderOptions.marginSpeed;
还有其他方法吗?
问题是如果我每隔10毫秒更改一次余量,那么CPU消耗很多。
答案 0 :(得分:1)
你不应该为此目的使用保证金(see why)......你可以使用relative position ......
或最佳解决方案: relative position + css transitions
<强> JS 强>
var s = $('#sliderContentText');
setInterval(function(){
s.toggleClass('moveleft');
},1000);
<强> CSS 强>
#sliderContentText {
position: relative;
transition: left 1s;
left: 0;
}
#sliderContentText.moveleft {
left: 50px;
}
你应该总是将jquery元素存储在函数循环之外以避免内存消耗