私はこれにひどく近づいている、またはクラックアップ、私はまだどちらか確かではない。多分両方。datasrc、live、およびInviewプラグインを使用してビューポートにスクロールすると、イメージがフェードします。
は、私は(素敵な全体のワールド・ワイド・ウェブに、apprently tumblrがで動作するだけ1、)無限スクロールジャバスクリプトを経由して(いくつかの非常に大きな)ページにロードする一連の画像http://syndex.me
を持っています多くの研究の後、私はinview pluginのフォークを見つけるために来て、私は後になっているようだ。私はそれを使用する2つの方法があり、それぞれに大きな問題があります。
方法1
この方法の問題点は、私はコンソールログの数百を得ることです。私は、このプラグインの要点は、非常に特殊なイベントが起きたときにやることだと思っていました。つまり、imgが表示されました。私はimgsが動的に読み込まれるので、ライブを使用する必要があります。私はバインドを解除しようとしました、伝言などを止めようとしませんでした。
$('img').live('inview', function(event, isInView, visiblePartX, visiblePartY) {
if (isInView) {
//fadein the image
console.log("I've just done something")
}
});
方法2(http://syndex.meでデモ)
イメージは、すぐに彼らは(位置、ない不透明度)をロード終わったような位置に "ジャンプ"。
それが100%ロードされますまで、ブラウザは画像の高さを知らないので、私はthatsのはい、と言って人々を想像することができます。しかし、私は無数のサイトがこれを行うことができたのを見ました。たぶん私は "負荷"を使用せずにこれを行う必要がありますか?しかし、それは何でしょうか?
$(function() {
$('img[data-src]').live('inview', function(event, isVisible) {
if (!isVisible) { return; }
var img = $(this);
// Show a smooth animation
img.load(function() { img.parent().animate({ opacity: 1 }); });
// Change src
img.attr('src', img.attr('data-src'));
// Remove it from live event selector
img.removeAttr('data-src');
console.log(img.height())
});
});
これは理論的に質問に答えるかもしれませんが、答えの本質的な部分を含め、参照のためのリンクを提供することが望ましいでしょう(http://meta.stackexchange.com/q/8259)。 –