使贴纸div停在页脚上方滚动 - document.outerHeight给出错误的结果

时间:2016-09-02 07:34:38

标签: javascript jquery html css

的CSS

.stick{position: fixed !important;}

贴纸div,ID =" summary-div"

<div class="col-sm-8"><!-- this Div has 4 accordions div--></div>
<div class="col-sm-4">
    <div>
        <div>
             <div>
                  <div id="order_summary">
                       <div id="summary-div"></div>
                  </div>
             </div>
        </div>
    </div>
</div>

页脚

<div class="container-fluid" id="stickEndPlace"></div>

下面的jquery代码使它坚持并且不粘,但是贴图是动态计算的,以确定css属性顶部粘贴它或在页脚正上方解开。但问题是;我必须为&#34; stickermax&#34;的一些场景提供一些静态值。变量非常适合在页脚之上,否则它有时会出现在ID为#34; stickEndPlace&#34;的页脚之上或之下。请帮忙。感谢

    var s = $("#summary-div");
    var pos = s.position();
    var stickermax = $(window).outerHeight() - $("#stickEndPlace").outerHeight() - s.outerHeight();
    $(window).scroll(function() {
        var windowpos = $(window).scrollTop();
            if (windowpos >= pos.top && windowpos < stickermax) {
                $("#summary-div").addClass("stick"); //stick it
                $("#summary-div").css("top",""); //kill top css property which sets while unsticking
            } else if (windowpos >= stickermax) {
                $("#summary-div").removeClass("stick"); //un-stick
                $("#summary-div").css({top: stickermax + "px"}); //set sticker right above the footer
            } else {
               $("#summary-div").removeClass("stick"); //top of page
           }
  });

问题

实际问题来自这行代码。

var stickermax = $(window).outerHeight() - $("#stickEndPlace").outerHeight() - s.outerHeight();

这&#34; stickermax&#34;值不正确,所以Scroll Div有时会低于页脚内部,有时会停在页脚之上。 如何解决这个问题&#34; stickermax&#34;因为它是动态的&#34; top&#34;正在制作贴纸DIV定位的css属性。

0 个答案:

没有答案