1

ページにアクセスしたときに画像をフェードインするために、lazyload.js を使用してサイトを構築しました。そのようです...

window.onhashchange = function() {
    if (location.hash) {
    var hash = window.location.hash.substring(2);
        switch (hash) {
            case "about":
                changeContent('about');
                break;
            case "contact":
                changeContent('contact');
                break;
            default:
        };

        $("img").lazyload({
            effect : "fadeIn",
        });
    } else {
    };
}

サイトはさまざまなページを使用して構築されていますが、location.hash を使用して Web サイトを 1 つのページ内でアプリのように機能させる方法について学んでいます。

残念ながら、onHashChange を使用するようにコードを切り替えると、レイジーロード画像以外はすべて機能しているように見えますが、画像は白のままです。

これは、ページがロードされていないため、遅延ロードが開始されていないためだと思います。

ハッシュの変更でコンテンツを変更するときに同じ効果を生み出す方法について、誰でもアドバイスを提供できますか?

4

1 に答える 1

0

イベントで遅延ロードされたイメージで使用しているイベントをトリガーしますhashchange。Lazy Load のデフォルト イベントはscrollで、デフォルト コンテナは ですwindow。次のようなことができるはずです。

window.onhashchange = function() {
   $(window).trigger("scroll"); 
}

あなたの質問から、どのchangeContent()機能が何をするのか明確ではありません。AJAX|H 経由でコンテンツをロードする場合は、新しくロードされたコンテンツにプラグインをバインドする必要もあります。

于 2012-11-02T15:52:45.997 に答える