【问题标题】:Detect if a div is in the center and execute some code检测一个 div 是否在中心并执行一些代码
【发布时间】:2014-01-24 23:47:52
【问题描述】:

我需要检测一个 div 是否在屏幕的中心,然后执行一些代码 - 我目前使用偏移量,但如果监视器有高分辨率,它就没有用了。

<script type="text/javascript">
//check to see if elements are at a certain position
$(document).ready(function () {
//hide bubble
$('#bubble02').hide();
// if div is at 300px execute code
  var videoInterval = setInterval(function() {
  if($('#balloon2').offset().left <= 300){
    $('#bubble02').fadeIn();
  }  
  else if($('#balloon2').offset().left >= 301){
    $('#bubble02').fadeOut();
  } 
});
</script>

任何帮助将不胜感激

【问题讨论】:

    标签: jquery html center


    【解决方案1】:

    您应该使用$(window).width(); 获取窗口宽度并检查 div 的偏移量是否等于宽度的一半:

    var windowCenter =  $(window).width() / 2;
    if($('#balloon2').offset().left <= windowCenter){
        $('#bubble02').fadeIn();
    }  
    else if($('#balloon2').offset().left >= windowCenter){
        $('#bubble02').fadeOut();
    } 
    

    【讨论】:

    • @user1546292 如果它解决了您的问题,请验证我的回答:)
    • 已验证! - 除了使用 setInterval(function() 之外,有没有更好的方法来不断检查这些变量?
    • @user1546292 你的代码是如何工作的? div 正在移动,您想知道它何时位于中心?我想不出除了 setInterval 之外的其他方法。只需根据您需要的精度设置间隔,例如每 1000 毫秒,这样您的函数就不会一直运行。还要从这个 setInterval 函数中取出 windowCenter 计算。它只需要运行一次!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 2017-09-07
    • 1970-01-01
    • 2021-07-23
    • 1970-01-01
    相关资源
    最近更新 更多