私はアニメーションをJQueryとCSSを使ってビューに分割しています。モバイルでのJqueryのCSSアニメーションのバグ
これは私のjavascriptのコードです:
(function($) {
$.fn.visible = function(partial) {
var $t = $(this),
$w = $(window),
viewTop = $w.scrollTop(),
viewBottom = viewTop + $w.height(),
_top = $t.offset().top,
_bottom = _top + $t.height(),
compareTop = partial === true ? _bottom : _top,
compareBottom = partial === true ? _top : _bottom;
return ((compareBottom <= viewBottom) && (compareTop >= viewTop));
};
})(jQuery);
$(window).scroll(function(event) {
$(".slide-up").each(function(i, el) {
var el = $(el);
if (el.visible(true)) {
el.addClass("come-up");
}
});
});
$(document).ready(function() {
$(".heading-slide-down").each(function(i, el) {
var el = $(el);
if (el.visible(true)) {
el.addClass("come-down");
}
});
});
$(window).scroll(function(event) {
$(".slide-left").each(function(i, el) {
var el = $(el);
if (el.visible(true)) {
el.addClass("come-left");
}
});
});
$(window).scroll(function(event) {
$(".slide-right").each(function(i, el) {
var el = $(el);
if (el.visible(true)) {
el.addClass("come-right");
}
});
});
そして、これは私がちょうどなどslide-up
またはslide-left
ライブクラスを適用するスライディングする必要が私のCSS
私のdivで/** FADE IN SLIDING FROM BOTTOM TO TOP **/
.come-up {
transform: translateY(150px);
animation: comeup 0.8s ease forwards;
}
.come-up:nth-child(odd) {
animation-duration: 0.6s;
}
@keyframes comeup {
to { transform: translateY(0); }
}
/** FADE IN SLIDING FROM TOP TO BOTTOM **/
.come-down {
transform: translateY(-100px);
animation: comedown 0.8s ease forwards;
}
.come-down:nth-child(odd) {
animation-duration: 0.6s;
}
@keyframes comedown {
to { transform: translateY(0); }
}
/** FADE IN SLIDING FROM RIGHT TO LEFT **/
.come-left {
transform: translateX(100px);
animation: comeleft 0.8s ease forwards;
}
.come-left:nth-child(odd) {
animation-duration: 0.6s;
}
@keyframes comeleft {
to { transform: translateX(0); }
}
/** FADE IN SLIDING FROM LEFT TO RIGHT **/
.come-right {
transform: translateX(-100px);
animation: comeright 0.8s ease forwards;
}
.come-right:nth-child(odd) {
animation-duration: 0.6s;
}
@keyframes comeright {
to { transform: translateX(0); }
}
私のラップトップではうまくいきますが、私の電話(iPhone)ではdivはすでに正しい位置にあります。私はそれらの方にスクロールすると、離れた場所に移動してから、どこにあるべきかを確認します。
可能であれば、私はこれをどのように説明することができないのか分かりませんが、自分自身を見てゆっくりとサイトをゆっくりとスクロールしてみてください。
どうしてこれが起こっているのですか?修正がありますか?
ありがとうございます!
更新: 問題はiPhone SE、最新のiOSのモバイルサファリで彼らが所定の位置にまでスライドさせることができるように、下向きに配置始動しなければならないのdivが正しい場所に開始し、その後下降し、バックアップをスライドされていることです彼らは視野に入っています。
それはあなたの説明どのような広報から完全に明確ではありませんoblemは - あなたはより詳細に行動の違いを説明しようとすることができますか? iPhoneでどのようなモバイルブラウザ(およびバージョン)を使用していますか?サファリ?あなたは他のディスプレイサイズでこれを試しましたか? – wahwahwah
@wahwahwah問題は、iPhone SEの最新のiOSのモバイルサファリで、下方に位置する必要があるdivが正しい場所にスライドして表示され、ビューにあるときに下に移動してバックアップをスライドさせることです。 –
ブラウザ、CSS、jQuery、画面解像度(またはその組み合わせ)に問題があります。あなたのiPhoneの別のブラウザでこれを試しましたか?これは応答性の高いサイトですが、応答性の高いCSSやjQueryは表示されません...フレームワークを使用していますか? – wahwahwah