Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在给定视口中使用叠加div剪裁场地显示_Javascript_Jquery_Html_Css_Dom - Fatal编程技术网

Javascript 在给定视口中使用叠加div剪裁场地显示

Javascript 在给定视口中使用叠加div剪裁场地显示,javascript,jquery,html,css,dom,Javascript,Jquery,Html,Css,Dom,我想问的是,为什么会有一个网站,比如StackOverflow,一个覆盖div可以隐藏除div内部内容之外的所有内容。我想就像一个相机一样,你只能看到取景器中的内容,而不能看到取景器外部的内容。我想暂时把取景器修好 我发现: 这很接近,但不是很接近。我试着在谷歌上搜索并询问朋友devs,但在资源部门没有运气。有人有什么想法让我开始吗 <html> <div class="content"> <h1>All the page con

我想问的是,为什么会有一个网站,比如StackOverflow,一个覆盖div可以隐藏除div内部内容之外的所有内容。我想就像一个相机一样,你只能看到取景器中的内容,而不能看到取景器外部的内容。我想暂时把取景器修好

我发现:

这很接近,但不是很接近。我试着在谷歌上搜索并询问朋友devs,但在资源部门没有运气。有人有什么想法让我开始吗

<html>
     <div class="content">
          <h1>All the page content divs</h1>
     </div>
     <div id="viewport-window"></div>
</html>

所有页面内容div

您也可以通过两个步骤来完成,例如:

  • 首先,创建一个div覆盖整个页面并隐藏所有内容
  • 第二,创建一个div克隆(待显示),绝对位置与原始位置具有相同的坐标,并增加其z索引

所以,逻辑是隐藏一切,显示你想要的。您还可以使用css或jquery动画将其可视化。

实际上,您可以在不使用“overlay”元素的情况下实现这一点

只需使用一个巨大的方块阴影和一个高z指数

在本例中,我使用了一个
:hover
,而“overlay”是略微透明的

.wrapper{
宽度:80%;
保证金:自动;
文本对齐:居中;
}
.盒子{
宽度:100px;
高度:100px;
边缘:1米;
显示:内联块;
垂直对齐:顶部;
背景:李子;
位置:相对位置;
}
.box:悬停{
盒影:10000pxRGBA(0,0,0,0.75);
z指数:9999;
}

乱数假文。
乱数假文。
乱数假文。

您可以通过将样式应用于希望覆盖的主元素来实现这一点(例如,如果希望覆盖整个页面,则应用
正文)。您也可以使用它来获得更多的浏览器支持,但请记住它已被弃用

演示

具有静态剪辑路径,但在其周围移动鼠标时,将更改为跟随鼠标的200x200视口

jQuery(document).mousemove(函数(e){
var width=jQuery(document).width();
var height=jQuery(document.body).height();
var viewW=200;
var viewH=200;
var top=e.pageY-(视图H/2);
右侧变量=(宽度-e.pageX)-(视图w/2);
变量底部=(高度-e.pageY)-(视图H/2);
var left=e.pageX-(视图w/2);
var style=“inset(“+top+“px”+right+“px”+bottom+“px”+left+“px”);
jQuery(document.body).css({
“-webkit剪辑路径”:样式,
“-moz剪辑路径”:样式,
“剪辑路径”:样式
});
});
正文{
-webkit剪辑路径:插入(20px 200px 200px 40px);
-moz剪辑路径:插入(20px 200px 200px 40px);
剪辑路径:插入(20px 200px 200px 40px);
}


我相信您所指的是css剪辑:您有两种选择,但这听起来更像是浏览器插件功能,而不是网站要求。总体目标是什么?剪辑!谢谢,我不知道它叫什么。Erm不,不是浏览器插件,它是一个需要此功能的组合网站,但需要鼠标拖动。我已经做了那部分,我只是不知道如何剪辑。谢谢@XKCD149我已经添加了一张图片来获取要点。我已经编辑了更多信息。谢谢你的帮助,但这并不完全是我所需要的。我想它很近,但范围不大。我已经更新了问题,你已经从根本上改变了问题。请不要那样做。我已经把问题推回原处。如果你有新问题,请在单独的帖子中提问。