setInterval()
を使用して、3秒ごとにy軸上の文章20pxを単純に移動しようとしています。私のコードは文章を1回だけ動かします。どうしたの?setIntervalで文章を3秒ごとに移動する
var yAxis = 20;
setInterval(function() {
$('.sentence').css('transform', 'matrix(1, 0, 0, 1, 0,' + yAxis + ')');
}, 3000);
setInterval()
を使用して、3秒ごとにy軸上の文章20pxを単純に移動しようとしています。私のコードは文章を1回だけ動かします。どうしたの?setIntervalで文章を3秒ごとに移動する
var yAxis = 20;
setInterval(function() {
$('.sentence').css('transform', 'matrix(1, 0, 0, 1, 0,' + yAxis + ')');
}, 3000);
あなたが与えるCSSディレクティブは常に同じです - 下20pointsに元の位置から.sentence
を変換します。
用途:
var yAxis=0;
setInterval(function() {
$('.sentence').css('transform', 'matrix(1, 0, 0, 1, 0,' + (yAxis+=20) + ')'); }, 3000);
代わり
私が欲しいものに近いが、最初のアニメーションは20でなく40pxになっているようだ。40px移動した後、20pxをy軸下に繰り返す。 – brewpixels
最初にyAxisを0に設定 - 忘れてしまった+ =は事前増分です! –
パーフェクト。何かを学んだ。どうも。 – brewpixels
あなたは左と上からから現在の要素のオフセットを取得するoffset()
メソッドを使用することができます。まず、topから現在のオフセットを取得し、新しい値で上書きします。これは、あなたのケースでは "oldOffset + 20px"になります。ここでは実施例である:
setInterval(function() {
var el = $('.sentence');
var currentOffset = el.offset();
el.offset({ top: currentOffset.top + 20, left: currentOffset.left})
}, 3000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="sentence">Text Text Text</p>
あなたのあなたは、その更新前の変換の状態を保存する必要がある20にそれは単純にYを設定し、既存のYに20を追加しません変換次の変換に適用する前に値を戻します。
let yAxis = 0;
setInterval(function() {
yAxis += 20;
$('.sentence').css('transform', 'matrix(1, 0, 0, 1, 0,' + yAxis + ')'); \t
}, 500);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="sentence">This is a sentence.</div>
あなたはJavaScriptデバッガを使用する方法を知っていますか?そうでない場合は、学習する時間です。ここには[Chrome DevToolsのガイド](https://developer.chrome.com/devtools)があります。 'setInterval'内のコード行にブレークポイントを設定し、毎回' yAxis'の値を見てください。価値が変わるのか、変わらないのか? –