JS固定DIV随滚动条滚动效果(这技术现在很流行,各大B2C网站都有)

来源:互联网 发布:淘口令生成软件 编辑:程序博客网 时间:2024/05/16 00:34

我直接贴出代码:

<style type="text/css">
    .county_cs{ position:fixed; top:0px; background-color:#cdcdcd; width:100%;}
    </style>


<div id="xsun">xsun</div>

<script type="text/javascript">
    var FixedBox = function (el) {
        this.element = el;
        this.BoxY = getXY(this.element).y;
    }
    FixedBox.prototype = {
        setCss: function () {
            var windowST = (document.compatMode && document.compatMode != "CSS1Compat") ? document.body.scrollTop : document.documentElement.scrollTop || window.pageYOffset;
            if (windowST > this.BoxY) {
                //this.element.style.cssText = "position:fixed; top:0px; background-color:#cdcdcd;width:100%";
                $(this.element).addClass("county_cs");
            } else {
                $(this.element).removeClass("county_cs");
                //this.element.style.cssText = "";
            }
        }
    };
    //添加事件
    function addEvent(elm, evType, fn, useCapture) {
        if (elm.addEventListener) {
            elm.addEventListener(evType, fn, useCapture);
            return true;
        } else if (elm.attachEvent) {
            var r = elm.attachEvent('on' + evType, fn);
            return r;
        }
        else {
            elm['on' + evType] = fn;
        }
    }
    //获取元素的XY坐标;
    function getXY(el) {
        return document.documentElement.getBoundingClientRect && (function () {//取元素坐标,如元素或其上层元素设置position relative
            var pos = el.getBoundingClientRect();
            return { x: pos.left + document.documentElement.scrollLeft, y: pos.top + document.documentElement.scrollTop };
        })() || (function () {
            var _x = 0, _y = 0;
            do {
                _x += el.offsetLeft;
                _y += el.offsetTop;
            } while (el = el.offsetParent);
            return { x: _x, y: _y };
        })();
    }
    //实例化;
    var divXsun = new FixedBox(document.getElementById("xsun"));
    addEvent(window, "scroll", function () {
        divXsun.setCss();
    });
   
   
</script>
原创粉丝点击