2011-12-25 21 views
1

私はウェブアプリケーションを開発しています。ズームインまたはズームアウトするたびに、ページ全体を塗りつぶすために3つのカラムdivのサイズを自動的に変更したいCTRL-と+正確jsfiddle.netなどで、ここで私はこの効果を作るために書かれたものですが、それは失敗しました:自動ウェブアプリケーションの高さと幅のリサイズ

HTML:

<div id="three_columns_container"> 
    <div id="first-column">...</div> 
    <div id="second-column">...</div> 
    <div id="third-column">...</div> 
</div> 

CSS:

#first-column{ 
    background:('slice.png'); 
    width: 15%; 
    height: 97%; 
} 
#second-column{ 
    background:('slice.png'); 
    width: 15%; 
    height: 97%; 
} 
#third-column{ 
    background:('slice.png'); 
    width: 70%; 
    height: 97%; 
} 

のJS:

$(window).resize(function(){ 
     $("#three_columns_container").height() = $(window).height * 0.97; 
     $("#three_columns_container").width() = $(window).width* 0.97; 
    }); 

このリンクは、問題の解決に役立つかもしれませんが、それは誰もが可変幅の使用のために、この

答えて

0

CSS

#firstColumn { 
    width: 15%; 
    height: 150px; 
    background: #1e3340; 
    float: left; 
} 
#secondColumn { 
    width: 70%; 
    height: 150px; 
    background: #305a5e; 
    float: left;  
} 
#thirdColumn { 
    width: 15%; 
    height: 150px; 
    background: #323e45; 
    float: left;  
} 

HTML

<div id="three_columns_container"> 
    <div id="firstColumn">...</div> 
    <div id="secondColumn">...</div> 
    <div id="thirdColumn">...</div> 
</div> 

JS

$(document).ready(function() { 
    var divRatio = {}; 
    setRatio('firstColumn'); 
    setRatio('secondColumn'); 
    setRatio('thirdColumn'); 
    $(window).resize(function() { 
     fixHeight('firstColumn'); 
     fixHeight('secondColumn'); 
     fixHeight('thirdColumn'); 
    }); 
    function setRatio(container) { 
     var selector = '#' + container; 
     divRatio[container] = $(selector).height()/$(selector).width(); 
    } 
    function fixHeight(container) { 
     var selector = '#' + container, 
      ratio = divRatio[container], 
      height = ratio * $(selector).width(); 
     $(selector).height(height);  
    } 
}); 
+0

これは本当に素晴らしい答えですが、非常に効率的です。ありがとうございます。しかし、小さな質問があります。バックグラウンドにbgカラーの代わりにイメージURLを入れたいのですが?私はそれを試したが、それはdivの全体の高さを埋めることはありません、あなたはどのように知っていますか? –

+0

私はバックグラウンドを修正するために解決策を取りましたが、それほど安定ではありません。バックグラウンドサイズを検出するブラウザにも違いがあります( 'background-size'プロパティを指定しないと問題があります)。上のスクリプトは、ページが読み込まれたときにズームされているので、100%ズームでWebページを開いたときに機能します。より良いアプローチは、ズームレベルを検出しているかもしれません...しかし、ちょうど混乱が何であるかを参照してください:http://stackoverflow.com/questions/1713771/how-to-detect-page-zoom-level-in-all-modern -Browsers –

+0

これはズームレベルを取得するのに役立ちますが、実際にズームレベルを設定できるようにするためにコードを調べようとしましたが、これは不可能だと思います。 また、私はこのプラグインを見つけましたが、最大のズームでは大丈夫だと思っています。http://methvin.com/splitter/3csplitter.html –

0

で私を助けることができる場合、私は思っていた正確な効果 link

がありません%年齢。固定使用ピクセルの場合に使用します。あなたが何を理解していないのですか?あなたがバックグラウンドピクチャもresizdする必要がある場合は、そのためのjsを書く必要があります。私はこれがあなたの問題の解決策だと思い

関連する問題