2017-10-24 3 views
0

現在私のスタイルシートに、私のRails 5アプリケーションで次のCSSがあります。Javascript:JSを変更して背景画像のサイズを変更し、エッジを切り捨てる方法を教えてください。

#intro { 
    @media screen and (orientation: portrait) { padding: 25px 0; 
     background: url("portraitbackgroundimage.jpg"); 
    } 
    @media screen and (orientation: landscape) { padding: 25px 0; 
     background: url("landscapebackgroundimage.jpg"); 
    } 
} 

レスポンシブウェブデザインの背景イメージを縮小して展開するJavaScriptに取り組んでいます。

ここで私のJSはapp/assets/javascripts/application.jsですが、イメージの右端を少し切り捨てる以外は問題ありません。

var screenWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 
var screenHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; 
$('#intro').css('background-size', screenWidth+'px '+screenHeight + 'px'); 

また、画像の右端を少し切り取ってみました。

$('#intro').css('background-size', $(window).width()+'px '+$(window).height()+ 'px'); 

元の画像は、各エッジにテキストがなくても10-20ピクセルしかない場合があります。サイズによっては、レターがある画像の右端が切り捨てられています。

私はスタックオーバーフローを検索しましたが、解決策が見つかりませんでした。

+1

'background-size:contains'の何が問題なのですか? –

+0

封筒とカバーの両方を試しました。どちらも画像を縮小したり拡大したりしませんでした。私はもともと、ポートレートとランドスケープの複数の画像を扱っていましたが、Javascriptソリューションを開発することに決めました。モバイルデバイスを回転させるときなど、ブラウザのウィンドウの向きが変わったときにJavaScriptを即座に実行するコードを追加する必要があることもわかっています。 –

+0

'background-size'をビューポートの大きさに設定した場合、画像は伸縮/歪みされます(*正確な比率でない場合*) –

答えて

0

画像はわずかに変更されましたが、右側の切り捨てにはまだ問題がありました。私はCSSとJSの両方を修正しました。

CSS

#intro { 
    @media screen and (orientation: portrait) { padding: 25px 0; 
     background: url("portrait.jpg") center center; 
    } 
    @media screen and (orientation: landscape) { padding: 25px 0; 
     background: url("landscape.jpg") center center; 
    } 
} 

JS

function resizeIntroImage() { 
    var screenWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth; 
    var screenHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight; 
    $('#intro').css('background-size', screenWidth+'px '+screenHeight + 'px'); 
} 
resizeIntroImage(); 

window.addEventListener("resize", function() { 
    resizeIntroImage(); 
}, false); 

ませ切り捨ては起こらないと、ブラウザウィンドウのサイズが変更されたときの画像はサイズを変更します。

関連する問題