我有一个简单的 javascript 库,当我有超过 3 或 4 个图像时,它的执行速度很慢。不要混淆,我不是说它会慢慢地进入下一个图像,我的意思是它在进入下一个图像时它是锯齿状的并且不平滑。有没有办法让代码更优化更流畅?或者也许更快的javascript中更好的功能?我不确定要寻找什么,因为我最近才开始研究 javascript。
我已经将所有图片压缩到每张小于 300kb。代码如下,javascript和html
//javascript
<script>
function slideSwitch() {
var r = Math.floor(Math.random() * 41) - 25;
var active = $("div#slideshow img.active");
active.siblings().css({'z-index': 97});
active.next().css({
'z-index': 98,
'-moz-transform': 'rotate(0deg)',
'-webkit-transform': 'rotate(0deg)',
'transform': 'rotate(0deg)'
});
active.css({ 'z-index': 99 });
if(active.hasClass('last')){
active.siblings(":first").css({ 'z-index': 98,
'-moz-transform': 'rotate(0deg)',
'-webkit-transform': 'rotate(0deg)',
'transform': 'rotate(0deg)' });
}
active.animate({ "left": (350+600) }, 250).css({
'-moz-transform': 'rotate(' + r + 'deg)',
'-webkit-transform': 'rotate(' + r + 'deg)',
'transform': 'rotate(' + r + 'deg)'
});
setTimeout(function () {
active.css({ 'z-index': 97 });
active.removeClass('active');
if (active.hasClass("last")) {
active.siblings(":first").addClass('active');
} else {
active.next().addClass('active');
}
active.animate({ "left": 350 }, 150);
}, 250);
}
$(function () {
setInterval("slideSwitch()", 1000);
});
<!--HTML-->
<div id="slideshow">
<img src="picture/img1.jpg" style="position:absolute;" class="active" />
<img src="picture/img2.jpg" style="position:absolute;" />
<img src="picture/img3.jpg" style="position:absolute;" />
<img src="picture/img4.jpg" style="position:absolute;" />
<img src="picture/img5.jpg" style="position:absolute;" />
<img src="picture/img6.jpg" style="position:absolute;" />
<img src="picture/img7.jpg" style="position:absolute;" />
<img src="picture/img8.jpg" style="position:absolute;" />
<img src="picture/img9.jpg" style="position:absolute;" />
<img src="picture/img10.jpg" style="position:absolute;" />
<img src="picture/img11.jpg" style="position:absolute;" />
<img src="picture/img12.jpg" style="position:absolute;" class="last"/>
</div>
谢谢大家。