【问题标题】:how to fix a div using jquery [duplicate]如何使用 jquery 修复 div [重复]
【发布时间】:2014-02-25 18:18:29
【问题描述】:

HTML

<div id='countdown'></div>

jQuery

<script>
  var elementPosition = $('#countdown').offset();

  $(window).scroll(function(){
    if($(window).scrollTop() > elementPosition.top){
          $('#countdown').css({'position':'fixed','top':'0'});
    } else {
        $('#countdown').css('position','static');
    }    
  });
</script>

这段代码在 JSFiddle 上运行,但是当我尝试它时,它对我不起作用。

我尝试查看控制台(开发人员的视图),它指向 elementPosition.top 。但是,top 是未知属性。有人可以帮我解决这个问题吗?

【问题讨论】:

标签: javascript jquery html css


【解决方案1】:

我能看到的唯一原因是代码不在 dom 就绪处理程序中

jQuery(function () {
    var elementPosition = $('#countdown').offset();

    $(window).scroll(function () {
        if ($(window).scrollTop() > elementPosition.top) {
            $('#countdown').css({
                'position': 'fixed',
                'top': '0'
            });
        } else {
            $('#countdown').css('position', 'static');
        }
    });
})

【讨论】:

    【解决方案2】:

    将您的代码放入 DOM 就绪处理程序 $(function() { .... }); 以确保在执行您的 javascript 代码之前正确加载 DOM 中的所有元素

    $(function() {
        var elementPosition = $('#countdown').offset();
    
        $(window).scroll(function(){
            if($(window).scrollTop() > elementPosition.top){
                $('#countdown').css({'position':'fixed','top':'0'});
            } else {
                $('#countdown').css('position','static');
            }    
        });
    });
    

    您的代码在jsFiddle 中有效,因为jsFiddle 已经为您完成了该部分。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 2014-05-08
      • 2017-11-18
      • 2012-05-11
      • 2016-12-31
      • 1970-01-01
      • 2014-07-03
      相关资源
      最近更新 更多