javascript - 在给定视口(viewport)中使用叠加 div 裁剪站点显示

标签 javascript jquery html css dom

我正在查询如何拥有一个站点,为了 StackOverflow 的争论,其中覆盖 div 可以隐藏除 div 内部内容之外的所有内容。我想就像照相机一样,您只能看到取景器中的内容,而看不到取景器之外的内容。我想暂时修复取景器。

我找到了:Fiddle

这很接近,但不完全是。我试过用谷歌搜索并询问 friend 开发人员,但在资源部门没有运气。任何人有任何想法让我开始吗?

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

最佳答案

您可以通过应用 clip-path 来做到这一点为您希望覆盖的主要元素添加样式(例如 body 如果您想要整个页面)。您也可以使用 clip以获得更多浏览器支持,但请记住它已被弃用。

演示

有一个静态的剪辑路径,但是当鼠标四处移动时它会变成一个跟随鼠标的 200x200 视口(viewport)

jQuery(document).mousemove(function(e){
  var width = jQuery(document).width();
  var height = jQuery(document.body).height();
  
  var viewW = 200;
  var viewH = 200;
  
  var top = e.pageY - (viewH/2);
  var right = (width-e.pageX) - (viewW/2);
  var bottom = (height-e.pageY) - (viewH/2);
  var left = e.pageX - (viewW/2);
    
  var style = "inset("+top+"px "+right+"px "+bottom+"px "+left+"px)";
  
  jQuery(document.body).css({
     "-webkit-clip-path":style,
     "-moz-clip-path":style,
     "clip-path":style
  });
});
body {
   -webkit-clip-path:inset(20px 200px 200px 40px);  
   -moz-clip-path:inset(20px 200px 200px 40px); 
   clip-path:inset(20px 200px 200px 40px);    
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<img src="https://placekitten.com/g/500/500" />

关于javascript - 在给定视口(viewport)中使用叠加 div 裁剪站点显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34317441/

相关文章:

html - 在 HTML 中只使用类的缺点?

javascript - Cypress 测试框架

javascript - Vue.js 如何从 Json 属性获取键(左侧值)。

jquery - 需要在我的下拉菜单上使用 jquery 或 css3 产生一些效果

javascript - FullCalendar 事件显示为细线

html - html5中本地数据库的安全级别

javascript - 将 2 个文本字段搜索为 1 个字段

javascript - 为什么 Number(null) 返回 0,而 parseFloat(null) 返回 NaN?

javascript - jQuery 深度克隆不是递归的

javascript - 单击它时在 div 上设置一个框阴影