昨日、クラスメートが私に助けを求め、左右の写真を自動的に再生する簡単なアニメーション効果を作成したと言いました
/* シームレス フォーカス画像*/
var _left = 770;
var left = -_left;//-770
function slideImg() {
if(left == -3080 || left == 0) {
_left = -_left; 🎜>}
$ ('.slidepics').animate({'left': left 'px'},1000);
left = left - _left;
tim = setTimeout(slideImg,5000) ;
}
slideImg();
I 見てみると、一見すると何の問題もありません。その後、彼は 1 か月間悩んでいた奇妙な問題について話しました。ウィンドウが最前面にあるときは問題ありませんでしたが、ウィンドウを最小化したり、他のウィンドウを参照したりすると、すぐに再生が表示されてしまうとのことでした。しばらくすると、再び正常になりました(つまり、問題ありません。Chrome には問題があり、Firefox にも問題があります)。
これまでこの問題に遭遇したことがなかったので、30分以上考えましたが、理解できませんでした。その後、以前に作成したメモを調べて、setTimeout が次のときの答えを見つけました。 Chromeブラウザでウィンドウが最前面にないときにアニメーションキューがたまり、最前面に戻ったときに突然爆発する可能性があるので、jqueryのstopメソッドを考えてみます。これにより、この要素のすべてのアニメーションが停止します。
/* シームレス フォーカス画像*/
var _left = 770;
var left = -_left;/ /- 770
function slideImg() {
if(left == -3080 || left == 0) {
_left =
}
$('.slidepics' ).stop().animate({'left': left 'px'},1000);
left = left - _left(slideImg,5000); slideImg( );