JavaScript获取窗口加滚动大小
JavaScript Get Window Plus Scroll Size
我创建了一个带有重新调整侦听器大小的JavaScript覆盖函数。除了有卷轴的时候,一切都正常。假设屏幕是1024x768,但网站的内容占用1500x700,所以只有垂直滚动。哪个JavaScript函数可以检测滚动量,以便覆盖它?因为现在JavaScript检测到1024x768,当我滚动时,覆盖会停止。(如果主体背景为白色,覆盖层为黑色,则1024像素显示为黑色,但其余476px显示为白色。)以下是我的代码,我已将其缩减为相关部分。在解决了这个问题之后,任何关于IE支持的提示都将不胜感激。到目前为止,它还没有在IE 8中正确渲染。
//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;
}
您可以使用CSS来固定覆盖的位置:
#overlay {
position: fixed;
top: 0;
left: 0;
}
前面建议的位置固定选项可能也是我要走的路线,但如果您希望覆盖中的图像随页面滚动,您可以更改getWindowSize()函数,以获取围绕内容的包装div的维度,而不是窗口维度。
相关文章:
- javascript/获取滚动条位置的回调
- 如何获取滚动DIV中的当前活动文本
- 如何使用位置获取滚动功能获取 HTML 中的元素标签
- 获取可滚动列表中第一个可见项的位置
- 滚动到底部后获取动态加载的HTML
- js-scrollToEl获取滚动位置
- 使用jQuery滚动获取距窗口顶部的距离
- 获取滚动位置的百分比
- 获取占x滚动条高度的窗口内部高度
- JavaScript:获取搜索文本在正文上的滚动位置
- jQuery 获取文档宽度和高度,不包括水平/垂直滚动条
- 我如何使用滚动顶部()获取HTML文档的位置
- 是否有任何跨浏览器方法可以获取带有滚动条的 DIV 宽度(如果存在)
- 使用 jQuery 获取 LI 的高度,以便新闻自动收报机向上滚动所需的确切数量
- jQuery 并仅在每 200 次滚动时获取滚动位置
- 滚动时从数据库获取图像 (HTML)
- 获取窗口滚动或 yui 中的滚动 Y 位置
- 在我的情况下,获取滚动 y 位置不起作用
- 如何在 jQuery 中获取浏览器滚动位置
- JavaScript:获取窗口宽度减去滚动条宽度