ブラウザウィンドウでサイズを変更/拡大/拡大する背景が必要です。JQuery - スケーラブル/サイズ変更の背景イメージ
CSS3方式があるようですが、広くサポートされていません。 数多くのJQueryメソッドがあるようですが、それらはすべて...まあ、ちょっとぎこちないか、あまりに多くの手動入力が必要です。
だから...私は考えていました...基本を拾い上げ、そのほとんどを私たちのためにしていますか?以下は
私がこれまでに得てきたものである:
をそれはいくつかの修正を加えて、Fullscreenrのようないくつかの既存の方法に基づいています。
<script type="text/javascript">
//<![CDATA[
$.fn.fullscreenr = function(options) {
var defaults = { width: 1280, height: 1024, bgID: 'bgimg' };
var options = $.extend({}, defaults, options);
$(document).ready(function() {
$(options.bgID).fullscreenrResizer(options);
});
$(window).bind("resize", function() {
$(options.bgID).fullscreenrResizer(options);
});
return this;
};
$.fn.fullscreenrResizer = function(options) {
// Set bg size
var ratio = options.height/options.width;
// Get browser window size
var browserwidth = $(window).width();
var browserheight = $(window).height();
// Scale the image
if ((browserheight/browserwidth) > ratio){
$(this).height(browserheight);
$(this).width(browserheight/ratio);
} else {
$(this).width(browserwidth);
$(this).height(browserwidth * ratio);
}
// Center the image
$(this).css('left', (browserwidth - $(this).width())/2);
$(this).css('top', (browserheight - $(this).height())/2);
return this;
};
$(document).ready(function() {
// Get the URL based on the Background property
function extractUrl(input) {
return input.replace(/"/g,"").replace(/url\(|\)$/ig, "");
}
// Get the Background CSS Property.
imageURL = extractUrl($("body").css("background-image"));
$('body').prepend('<div id="triquiback"></div');
$('#triquiback').prepend('<img id="triquibackimg" src="'+imageURL+'" />');
var triquibackcss = {
'left' : '0',
'top' : '0',
'position' : 'fixed',
'overflow' : 'hidden',
'zIndex' : '-9999'
};
var triquibackimgcss = {
'position' : 'fixed'
};
$("#triquiback").css(triquibackcss);
$("#triquibackimg").css(triquibackimgcss);
});
$(window).load(function() {
var pic = $('img');
pic.removeAttr("width");
pic.removeAttr("height");
thiswidth = pic.width();
thisheight = pic.height();
// You need to specify the size of your background image here
// (could be done automatically by some PHP code)
var FullscreenrOptions = {
width : thiswidth,
height : thisheight,
bgID : 'img'
};
// This will activate the full screen background!
jQuery.fn.fullscreenr(FullscreenrOptions);
});
//]]>
</script>
...私はどのような変更を管理しましたか?
さて、私は、あなたがバックグラウンドイメージ/ファイルを指定する必要がないように管理しました。それは、ボディから自動的にピックアップします。
また、それ自身で高さ/幅を検出できるようにしました。
さらに、サイズ変更されるラッパーとイメージが、マークアップに含まれるのではなく、JQuery経由で挿入され、JSを介してスタイリングされるようにしました。
今問題... /欲望?
これはすべてメインのhtmlドキュメントにあります。
私は外部ファイルとして好きですが、試したすべてが失敗しました!おそらくハックをやっているからです。
それに続いて、適用する要素を指定できるようにすることができます(本体以外のものが必要な場合)?
一般的に - それは混乱のように見えます(ハックの誤ったマッシュのため)、私はそれが非効率的であると確信しています。コードを実行するより良い方法はありますか?
私は100%確信していませんが、おそらくz-indexプロパティを設定する必要があります。ある時点で誰かが別の設定をして別の値を望む可能性があると思いますか?
(何も指定されていない場合のデフォルトを含めて?)
IE6私はIE6のCSSの仕事を作る方法を逃したと思う...、それはブラウザを識別した場合に異なるスタイルを供給することが可能ですそれはIE6ですか?
それ以外は、十分にうまくいくようです。 は、ウィンドウのサイズ変更にサイズを変更FF3で動作します/最新のクロム(6?)、IE7など
私はCSS3をサポートしているか否かテストするためにちょっとしたトリックを見てきました、 はので、私はまたかどうかを確認するためにテストします私はこれが必要かどうかを検出するために使用することができます(必要でない場合は膨大な時間を節約する必要があります)。
+
私はそこに、私は自分自身の事のこの種を行うために使用されるんだけど、何かをして一日を無駄に愚かなようだ
...援助を求めてとても生意気な感じより一般的な問題を見つけ出し、その日を髪を引っ張って1週間にすることができます。D
事前に(もし私が運が良ければ)ありがとうございます。
私は生意気なこと...しかし、 "微調整" していた場合にわかりませんか? 誰でもコードを外部/プラグインとして作成し、少し柔軟にするためのアイデアや提案がありました。 – UselesswithJS