日期:2014-05-16  浏览次数:20317 次

jquery 使元素在固定空间内滚动


如图。蓝色的那块div的top值随滚动条的scrollTop值改变,但不能超过白色的那块区域,意思就是不能重叠到头部或底部的div上。请问如何实现。以下是我的代码,感觉累赘并且在IE6下无效。请高手指点
JScript code

var top_height = document.getElementById("top").offsetHeight;
var left_height = document.getElementById("left").offsetHeight;

 $(document).ready(function() {
            $(document).scroll(function() {
                var scroll_top = document.documentElement.scrollTop;
                var left_top = $("#left").offset().top;
                var m2_top = $("#m2").offset().top;

                if ((scroll_top > top_height) && (scroll_top + left_height < m2_top)) {
                    $("#left").css({ "top": scroll_top });
                }
                else {
                    if (scroll_top < top_height) {
                        $("#left").css({ "top": top_height + 20 });
                    }
                    else {
                        $("#left").css({ "top": m2_top - 10 - left_height });
                    }
                }

            })
        })



------解决方案--------------------
给个思路给你吧 懒得写代码了!你首先获取一下头部的高度和表框的宽度,然后滚动滚动条的时候判断蓝色方块的offset().top;值是否等于头部的宽度,建议当比头部的高度大一点的时候就停止滚动!!不知道楼主是否有了解决的代码!!可以发站内邮箱
------解决方案--------------------

position:absolute;
top:10px;


听下来这个蓝的层 和 白色的层是并列的关系

所以只要放在 一个绝对为止就可以了