无法修复div以阻止页脚,我缺少什么?

时间:2015-12-10 15:03:06

标签: javascript jquery html css

我有一个侧边栏div,它固定到某个滚动/页面高度,然后变为position:absolute

我的问题是,当它加载时,它处于正确的位置和高度,直到我滚动然后它移动(部分归因于jQuery功能)。然而,当它移动时,它会使它不会停留在页脚,而是继续经过它。

我在COS上构建这个,所以我无法在JSFiddle中重新创建问题,但我可以将您链接到页面。

CSS

/*fixed/absolute div*/
.widget-type-post_listing{
    right:0;
    width:50px;
    position:absolute;
    display;block;
    background:yellow;
    height:50px;
   }

的jQuery

$(function(){
    var container = $('.widget-type-post_listing');
    var minTop = $('.header-container-wrapper').outerHeight();
    var maxTop = $('.footer-container-wrapper').offset().top - container.outerHeight(); 

    $(document).scroll(function() {
        container.css('top', Math.min( Math.max(minTop, $(document).scrollTop()), maxTop ));
    });
});

这是JS小提琴,展示了一个工作示例: JSFiddle 。您可以看到黄色框(固定/ abso.div)将粘贴在页面上,直到滚动到页脚。

如上所述,要查看确切问题,请访问工作页面: Working Page

感谢大家的帮助!

1 个答案:

答案 0 :(得分:0)

您可以在黄色div 100%宽度位置相对位置的页脚和标题之间添加div,然后固定该div的最大高度并将其设置为inline-flex或inline-block。我认为这应该是这样的工作。

private ProgressBarCircularIndetermininate pBar;

pBar = (ProgressBarCircularIndetermininate) getView().findViewById(R.id.progressBarCircularIndetermininate);

private void makeJsonRequest() {

            showProgressDialog();
            StringRequest strReq = new StringRequest(Method.POST, URL.DASHBOARD, new Response.Listener<String>(){

                @Override
                public void onResponse(String response){

                        try {

                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                    hideProgressDialog();
                }
            },
            new Response.ErrorListener()
            {
                @Override
                public void onErrorResponse(VolleyError error) {
                    AppController.getInstance().volleyErrorHandler(error);
                    hideProgressDialog();
                }
            }) {
                @Override
                protected Map<String, String> getParams() {
                    Map<String, String> params = new HashMap<String, String>();
                    params.put("user_id", userID);
                    return params;
                }
            };
            strReq.setRetryPolicy(new DefaultRetryPolicy(TIMEOUT, NUMOFATTEMPT, BACKOFMULT));
            // Adding request to request queue
            AppController.getInstance().addToRequestQueue(strReq, tag_string_req);
        }

    private void showProgressDialog() {
            if (!pBar.isShown())

                pBar.setVisibility(View.VISIBLE);
        }

        private void hideProgressDialog() {
            if (pBar.isShown())

                pBar.setVisibility(View.GONE);
        }