ビューポートに入るときに、次のpen by Bramusを使用してアニメーション(FadeInUp)divを使用しています。しかし、現在divは、divがビューポート内に完全に入るとフェードインし始めます。私が必要とするのは、divがビューポート内の特定のピクセルであるときにアニメーションを開始する柔軟性です。たとえば、ビューポートでdivが100ピクセルのとき、アニメーションFadeInUpが開始されます。どのように私は現在のコード/私が使用しているペンでこれを行うことができます(下記のコードを参照)?ビューポートへの特定のピクセルのアニメーション(Bramusによるペン)
これもパーセンテージで可能ですか? F.e.ビューポートでdivが20%のときアニメーションが始まりますか?
ありがとうございました。
jQuery(function($) {
// Function which adds the 'animated' class to any '.animatable' in view
var doAnimations = function() {
// Calc current offset and get all animatables
var offset = $(window).scrollTop() + $(window).height(),
$animatables = $('.animatable');
// Check all animatables and animate them if necessary
$animatables.each(function(i) {
var $animatable = $(this);
if (($animatable.offset().top + $animatable.height() - 20) < offset) {
$animatable.removeClass('animatable').addClass('animated');
}
});
};
// Hook doAnimations on scroll, and trigger a scroll
$(window).on('scroll', doAnimations);
$(window).trigger('scroll');
});
私はマイナスプラスで数字を回っていましたが、それは私のために次のいずれかの結果になります:divがビューポートで100%以上になるとぼやけてしまいます。私はまだJavascriptの使用法を学んでいます。私が望むのは、divがフェードインし始めるビューポートでdivが10ピクセルのときです。このコードの個々の要素が何をしているのか説明できますか? もう1つ:私の場合、このコードはうまくいかず、Chrome(バージョン59.0.3071.109)でエラーが発生します。TypeError:$ animatables.sizeは関数ではありません jQuery 3.2.1を使用しています。 – WPasman
私はjQuery.comで与えられたエラーを修正することができました: ".size()メソッドはjQuery 1.8で廃止予定です。代わりに.lengthプロパティを使用してください。" – WPasman
ペンは2013年に作成され、jQuery 1.10を使用していることに注意してください。jQuery 3.2.1でそれを使用するには、いくつかの調整が必要です。 – Bramus