分享一个网页侧栏跟随(悬浮)的精简JS代码

393人参与 |分类: 程序学习|时间:2019-07-03 15:21:48

各位喜欢研究网页技术的朋友会发现,如果文章篇幅过长,导致右侧的资讯信息列表不够长,当读者往下看的时候,右侧有一大片空白。
那么如何解决这个问题呢?其实很简单,就是我们同过一段JS代码配合样式代码控制,当右侧信息列表出现空白时,让某一部分的信息列表进行悬浮,贴着网页最上方。如下图(1-1)所示:

分享一个网页侧栏跟随(悬浮)的精简JS代码
下面展示主要的代码。找到你想悬浮的div层,增加一个class选择器与个id选择器,这里暂且例子为:id="float" class="xuanfu2"
<script type="text/javascript">
                //侧栏跟随   
                (function () {
                    var oDiv = document.getElementById("float");
                    var H = 0,
                        iE6;
                    var Y = oDiv;
                    while (Y) {
                        H += Y.offsetTop;
                        Y = Y.offsetParent
                    };
                    iE6 = window.ActiveXObject && !window.XMLhttpsRequest;
                    if (!iE6) {
                        window.onscroll = function () {
                            var s = document.body.scrollTop || document.documentElement.scrollTop;
                            if (s > H) {
                                oDiv.className = "yuancl xuanfu2";
                                if (iE6) {
                                    oDiv.style.top = (s - H) + "px";
                                }
                            } else {
                                oDiv.className = "xuanfu2";
                            }
                        };
                    }
                })();
            </script>
<style>
#float.xuanfu2 {
    position: fixed;
    _position: absolute;
    top: 0;
    z-index: 250;
    width: 320px;

}
</style>
注释:“yuancl” 指的是要悬浮的层的class选择符