リサイズされたリスナーでJavaScriptオーバーレイ機能を作成しました。スクロールがある場合を除いてすべてが機能します。スクリーンは1024x768だが、ウェブサイトのコンテンツは1500x700だから、垂直スクロールしかない。どのJavaScript関数がスクロール量を検出してオーバーレイでカバーできるのか?今はJavaScriptが1024x768を検出し、スクロールするとオーバーレイが停止します。 (体の背景が白でオーバーレイが黒の場合は1024で黒が表示されますが、残りの476ピクセルでは白が表示されます)。以下は私のコードです。それが解決された後、IEのサポートのためのヒントをいただければ幸いです。これまでのところ、それはIE 8で正しくJavaScript Get Window Plus Scroll Size
//Index.html
renderOverlay("image.jpg");
//Overlay.js
renderOverlay(img){
if(resizeListener){ //global variable
var overlay = document.createElement("div");
overlay.className = "overlay"; //Contains overlay background color, positioning etc
overlay.id = "overlay";
overlay.style.width = getWindowSize("width");
overlay.style.height = getWindowSize("height");
overlay.innerHTML = "<img src='"+file+"' />";
document.appendChild(overlayWrapper);
window.addEventListener("resize", function(){renderOverlay(img)}, false);
}else{
document.getElementById("overlay").style.width = getWindowSize("width");
document.getElementById("overlay").style.height = getWindowSize("height");
}
}
//getWindowSize.js
getWindowSize(dimension){
if(typeof(window.innerWidth) == "number"){
if(dimension == "width"){
return(window.innerWidth+"px");
}else{
return(window.innerHeight+"px");
}
}
}
//CSS
.overlay{
background: rgba(0, 0, 0, 0.8);
left: 0;
overflow: auto;
position: fixed;
text-align: center;
top: 0;
}
素晴らしいです。ありがとう。 IEでのレンダリングに背景色の不透明度を取得する方法を知っていますか?私は現在IE8でテストしており、背景もレンダリングされていません。オリジナルのステートメントにコードを貼り付けます。 –
これは役立つかもしれません:http://css-tricks.com/css-transparency-settings-for-all-broswers/代わりに、半透明の背景イメージを使用することができます。 –
私はそれを試してみましょう。このスレッドは解決済みとしてマークすることができます。 –