我有一个侧边栏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
感谢大家的帮助!
答案 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);
}