2012-01-27 3 views
1

EDIT 1/27/12 11:32 am - 私はこのスクリプトに関連するすべての問題を修正したと思います。私は、左または右に浮かべたいか、それとも中央に置くかによって、サイズを変更したいそれぞれの画像にCSSクラスを適用する必要がありますが、私はそれで生きることができます。 http://evanwebdesign.com/responsive-web-design/example5.htmljQuery - 動的に設定された幅のdiv内の画像を囲みます

編集で1/27/12 10:50に私の最新の説明とデモを参照してください - まだこのスクリプトに問題があります。以下の私のコメントを参照してください。修正の作業。

編集1/27/12 9:00 am:この問題はほぼ完了しました。私は現在、http://evanwebdesign.com/responsive-web-design/example.htmlに掲載ブラウザウィンドウの幅に応じて調整し対応する画像の例を持っているhttp://www.evanwebdesign.com/responsive-web-design/example3.htmlで私の例を参照してください、私のオリジナルの例

との比較。

EDIT 1/16/12:私はより精巧な例を作っている(うまくいけば)簡単にhttp://evanwebdesign.com/responsive-web-design/example2.html

で理解することが私の質問になりますが、私は私の#content divの中に複数のイメージがあるとしていること?そして、彼らはすべて幅が違うとしますか?私は手動で幅の値を計算し、すべての画像のカスタムクラスで囲むdivを作成したくありません!

代わりに、私は次の操作を行いますjQueryのスクリプトを書きたい:#content divの

  • 内のすべての画像を通して

    • Goでは、各画像の幅を取得します(私はそのI実現これ以外の場合は$(window).load()を使用する必要があります。

    • イメージの幅をピクセル単位で取り、900で割ります(900は任意の最大幅ですパッドの後の#content divのピクセル値dingが適用されています)。

      前の手順で作成した新しい番号を、画像の周りの新しいdivを含む幅に適用します。

    目標は、動的に#content divの内の各画像の.home_photo div要素を作成することです。マークアップがHTMLに表示されないので、CSSがインラインで書かれているかどうかは気にしません。

    この質問が明確かどうか、もっと自分自身を説明するために他に何かがあるかどうか教えてください。この質問には多くのステップが含まれています。

    おかげさまで皆様のお役に立てれますようお願い申し上げます。

  • +0

    私はjQueryマスターではないので、画像の幅を取得してアラート()として投稿しています。 '$(ウィンドウ).LOAD( \t \t \t関数(){ \t \t \t \tアラート($(home_photo).width()); \t \t \t} \t \t);' – Evster

    +0

    ものについてそれは価値がある...私はこの例のコードを完全に理解していないが、これは私が達成しようとしているものに似ていると思う:[http://stackoverflow.com/questions/8723170/jquery-dynamic-image -resize] – Evster

    答えて

    0

    は私だけ

    <style> 
        .home_photo img 
        { 
         width:900px; 
        } 
    </style> 
    

    は、私は、これはトリックを行うだろうと思い

    EDIT

    をsmthing誤解なら、私を知ってみましょうあなたは、CSSでこれを行うことができると思い

    $(function(){ 
        $(window).resize(function(){ 
         $("#container img").each(function(){ 
         if($("#content").width() < $(this).width()) 
         { 
          $(this).width($("#content").width()); 
         } 
         }); 
        }); 
    }); 
    
    +0

    それはそうではありません。サイトを1024以上の解像度で表示したときに、画像がネイティブサイズで表示されるようにするには、画像を含む要素に手動で設定された一意の幅が必要です。例にCSSルールを追加するのはこの特定のシナリオでは機能しますが、別の幅の2番目の画像を追加する場合は、新しいCSSクラス(.home_photoなど)を作成する必要がありますが、幅。申し訳ありませんが、混乱している場合は、お手数をおかけしてください! – Evster

    +0

    申し訳ありませんが、私はまだそれを取得しない、あなたの例では、画像で何をしたいのですか?そして私はjavascriptで自動的にそれをやろうとします。 – alex

    +0

    お試しいただきありがとうございます。私がhttp://evanwebdesign.com/responsive-web-design/example2.htmlでやろうとしていることのより詳細な例を掲載しました – Evster

    1

    私が理解しているように、それぞれをラップしたいメインの#content divを基準にしたイメージのネイティブサイズに基づいてサイズが変更されるdiv内のイメージ。

    このトリックを行う必要があります。

    $(document).ready(function() { 
        var contentWidth = $('#content').width(); 
        $("#container img").each(function(){ 
         var ratio = $(this).width()/contentWidth; 
         $(this).wrap("<div style='width:"+ratio+"'></div>"); 
    }); 
    

    あなたはwindow.loadを言及 - $(ドキュメント).readyをむしろ待っているよりも、それはDOMがロードされた直後に実行されるので、jQueryを使って使用するより良いバージョンですロードするページ上のすべてのリソース(イメージなど)を取得します。

    +0

    コードがロードされた資産に依存する場合(たとえば、イメージが必要です)、コードはloadイベントのハンドラに配置する必要があります。 --Jquery.ready page –

    +0

    @ Joel.dあなたは男です!あなたが書いたものは_close_でしたが、私はそれを動作させるためにいくつかの修正を加える必要がありました。それらの1つは、David Richardが述べたように、必要なwindow.loadでした。もう1つは、jQueryによって生成されたdivのインラインCSSに「%」を追加することでした。最後に、各画像にjQueryを使って100%の幅を与えなければなりませんでした。なぜなら、CSSでコード化しても機能しなかったからです。私の新しい例をhttp://www.evanwebdesign.com/responsive-web-design/example3.htmlで見てください。 – Evster

    +0

    この新しい例に問題があることを認識しています。サイズが小さい画面でページが読み込まれると、イメージは元のピクセルサイズで開始されます。私は今すぐ解決に取り組んでいます。 – Evster