初心者のビットです。私はわずかに機能していないアニメーションを持っています。私はキューイングの問題だと思っていますが、ホバー/ポーズの効果がほしいだけです。私の読書から、私はこの解決策の間違った方向に向かっていると感じています。停止()を使用して再開したアニメーションが遅い
私はキューを理解する方法は、より大きな効果を達成するために、異なる時間にトリガするために小さな一連のアニメーションを処理することです。私はこれについて大量の読書をしてきましたが、これは私が達成しようとしていることに対する間違った解決策であると感じています。私の研究は、ホバーオーバー/アニメーションアップ、ホバーオフ/アニメーションダウンを上げています。私はちょうどアニメーションを再開したいので、やはり私はこれについて間違った方向に向かっていると感じています。私はネイティブソリューションを見つけるのが非常に難しいですが、さまざまなプラグインがあることを認識しています。
私はどこに行ったかを示すためにコメントを残しました。これらを取り除くことが望ましい場合は、次回のためにお伝えください。私はが達成したい何
:、スライドショーが停止し、上のホバーリングアウトホバリングは、スライドショーが再開されます。
私の問題:マウスオーバー/アウトを繰り返すと、アニメーションがかなり遅くなります。私は限られた、あるいはまったく成功で試してみた何
:
- キューをクリアし、その結果をコンソールに出力するには、それはまだ ダウンが遅くなります。
- 左の位置の値を現在の左の値に設定すると、 運がありません。
- キューカウンタは、正確には 以下のスライドショーである必要があります。
JSフィドルここ見つかり:http://jsfiddle.net/qWQCQ/
JSフィドルここストップ値で:http://jsfiddle.net/qWQCQ/1/
コードサンプル下:
Javascriptを:
$("document").ready(function(){
//----------------------------------------CONFIG--------------------------------------------------------------
var resetNum = 0;//FOR RESET PURPOSE
var itemRightMargin = 10;//YOUR MARGIN VALUE
var itemWidth = 100;//WIDTH OF YOUR IMAGES, NOT INCLUDING M/P
//----------------------------------------END CONFIG----------------------------------------------------------
$('.w-slides .first').clone().appendTo('.w-slides').removeClass('first').addClass('last');
var clipWidth = (itemRightMargin+itemWidth)*$('.w-slides li').length;
var containerWidth = clipWidth-itemRightMargin;
var clipCapacity = $('.w-slides li').length;
var animation = (containerWidth*-1)+itemWidth;
//SET THE STRUCTURE
$('.w-slideshow').css('width', itemWidth);
$('.w-multi').css('width', containerWidth);
$('.w-slides').css('width', clipWidth);
$('.w-slides li').css({'float':'left', 'width':itemWidth, 'margin-right':itemRightMargin+'px'});
$('.w-slides li:last').css('margin-right', 0);
$('.w-slideshow, .w-multi').css({'padding':resetNum});
$('.w-multi').css({'margin':resetNum});
function animateMe(){
$('.w-multi').animate({left:animation}, 6000, 'linear', function()
{
$('.w-multi').css('left', 0);
animateMe();
});
}
$('.w-multi').hover(function(){
$(this).stop(false, false);
//$(this).stop().animate({left:animation}, 6000, 'linear');
//var thisPosition = $(this).css('left');
//alert(thisPosition);
//$(this).css('left',thisPosition);
var queueNum = $('.w-multi').queue('fx').length;
//(function(){console.log($(this).queue('fx').length);});
$('#queue').html(queueNum);
//$(this).queue(function(){console.log($(this).queue('fx').length);});
},
function(){
animateMe();
});
animateMe();
});
HTML:まず
<div>
<div class="w-slideshow">
<div class="w-multi">
<ul class="w-slides">
<li class="first"><a href="#"><img src="http://www.littleredplanedesign.com/labs/rotator/rotator-images/xmen-1.jpg" /></a></li>
<li><a href="#"><img src="http://www.littleredplanedesign.com/labs/rotator/rotator-images/xmen-2.jpg" /></a></li>
<li><a href="#"><img src="http://www.littleredplanedesign.com/labs/rotator/rotator-images/xmen-3.jpg" /></a></li>
<li><a href="#"><img src="http://www.littleredplanedesign.com/labs/rotator/rotator-images/xmen-4.jpg" /></a></li>
<li><a href="#"><img src="http://www.littleredplanedesign.com/labs/rotator/rotator-images/xmen-5.jpg" /></a></li>
</ul>
</div>
</div>
<div id="queue" style="width:150px; margin:0 auto; margin-top:20px;">Num of items in queue = </div>
</div>
+1非常に明確に定義された質問のために。 – halfer