jquery - 如果元素的某些部分超出视口(viewport),如何使用 jquery 检查

标签 jquery html css

我如何使用 Jquery 检测元素(哪个位置是absolute)是否水平超出视口(viewport)并将其设置为 left: 0(以适应视口(viewport)中的该元素)当 body 具有 overflow: hidden 属性时。

这是我的标记。

<!DOCTYPE html>
<html>
<head>
  <style>
    body,html{overflow: hidden;}
    div{
     position: absolute; width: 100%; margin-left: 30%;
    }
  </style>
</head>

<body>

  <div></div>

</body>
</html>

最佳答案

您需要在 jQuery 中执行以下比较:

var window_width = $(window).width();
var offset_left = $("div").offset().left;
var offset_right = $("div").offset().left + $("div").width();
var scroll_left;
var sum;
$("button").click(function(){
  scroll_left = $(window).scrollLeft();
  sum = window_width + scroll_left;
  if(sum >= offset_left && scroll_left <= offset_right)
    alert("visible");
  else
    alert("not visible");
});
div{
  position: absolute;
  width: 100%;
  margin-left: 120%;
  background:yellow;
  height:200px;
}
button{
  position:fixed;
  top:0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
</div>
<button>Check</button>

关于jquery - 如果元素的某些部分超出视口(viewport),如何使用 jquery 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28480406/

相关文章:

javascript - 如何使用 jquery 更改鼠标移动时 div 中的图像源?

javascript - 有没有办法用 jquery ui 实现这种可拖动的效果?

html - "&percnt;"IE无法识别

html - 向三列 Flexbox 布局添加顶栏(实现 Flex-wrap)

javascript - jstree Angular Directive(指令)中不同节点的自定义上下文菜单

php - fancybox:打开外部子页面加载其后面的父页面

html - block 悬停效果 - 为什么它在 FF3.6 中不能正常工作?

javascript - 所有事件的单个事件处理程序 javascript/jQuery

javascript - Chrome 扩展 : How to redirect to a custom HTML page in response to specific web request?

html - 将可缩放图像定位在其他图像之上