0

インストールしたライブラリで問題が発生していますが、答えはより一般的であると確信しています。

次のコードで「data-x」と「data-y」の値を計算する、作成した js ファイルがあります。

$(document).ready(function () {
    var x2 = -1920;
    var y2 = 0;

    var resX = $(window).width();
    var resY = $(window).height();
    var disX = (resX)/1920;
    var disY = (resY)/1080;

    $("#div2").attr('data-x',disX*x2);
    $("#div2").attr('data-y',disY*y2);
});

ページが読み込まれた後に Chrome コンソールを確認すると、すべての値が正しい div に正しく表示されますが、HTML ファイルにハードコードされていない限り、最初の js ファイル (impress.js) には値が表示されません。

各ファイルが無駄にロードされる順序を切り替えようとしました。私のhtmlは次のようになります。

http://jsfiddle.net/gVdkL

myjs.js ファイルで計算した値を表示するために impress.js (ダウンロードした js ライブラリ) を取得するためにできることはありますか? それらがどのように読み込まれるか、または html ドキュメントの下部にある impress.init() に問題がありますか?

どんな助けでも大歓迎です!ありがとうございました!

4

1 に答える 1

1

あなたのフィドルとあなたが添付したコードを見ると、問題はあなたのコードがDOM準備完了イベントでimpress().init()実行され、それが解析されたときに実行されることだと思います(DOMが完全に準備される前に)。

コードの後に​​次の行を含めることができます。

$(document).ready(function () {
    var x2 = -1920;
    var y2 = 0;

    var resX = $(window).width();
    var resY = $(window).height();
    var disX = (resX)/1920;
    var disY = (resY)/1080;

    $("#div2").attr('data-x',disX*x2);
    $("#div2").attr('data-y',disY*y2);


    impress().init(); // <-- init it here after the values are being set
});
于 2013-07-28T06:26:22.777 に答える