zoukankan      html  css  js  c++  java
  • JS-JQ实现页面滚动时元素智能定位(顶部-其他部位)

      先看效果:

       

    阅读前提:充分理解div的三种定位方式:浮动,相对定位,绝对定位

    方法一(顶部)

         原理:直接使用css 进行控制;缺点:不兼容ie6-;

         实现:position:fixed; top:0

    方法二(顶部)

         原理:获取页面被卷曲的高度(LEN),复制给 obj.STYLE.TOP=LEN,缺点,效果不是很流畅!

         实现:

    window.onscroll=function (){

         var len=document.documentElement.scrollTop||document.body.scrollTop;

         var obj=document.document.getElementById("id")

         obj.style.top=len     

    }

    方法三(各种部位)

             这是在网上找的jq方法,自己也实际动手写了一遍;

            

    $.fn.smartFloat = function() 
        var position = function(element) 
            var top = element.position().top; 
            var pos = element.css("position"); 
            $(window).scroll(function() {
                var scrolls = $(this).scrollTop(); 
                if (scrolls > top) 
                    if (window.XMLHttpRequest) 
                        element.css(
                            position: "fixed", 
                            top: 
                        }).addClass("shadow"); 
                    else {
                        element.css(
                            top: scrolls 
                        });     
                    
                }else 
                    element.css(
                        position: pos, 
                        top: top 
                    }).removeClass("shadow");
                
            }); 
        }; 
        return $(this).each(function() 
            position($(this));                          
        }); 
    }; 

    调用

    $(function()
        $("#nav").smartFloat(); 
    }); 

    ps:边框加阴影的css代码;
    .shadow{-moz-box-shadow:1px 1px 2px rgba(0,0,0,.2); -webkit-box-shadow:1px 1px 2px  
    rgba(0,0,0,.2); box-shadow:1px 1px 2px rgba(0,0,0,.2);} 
     
  • 相关阅读:
    (兼容IE8)的渐变
    左侧固定,右侧自适应,两列等高并且自适应的第二种办法
    左侧定宽,右侧自适应,两列布局且等高
    下拉框重写
    在页面中输出当前客户端时间
    用哈希表去数组重复项,有详细注释
    求数组最大值、求和、乘法表、取整
    类似新浪微博输入字符计数的效果
    将博客搬至CSDN
    Mysql常用操作
  • 原文地址:https://www.cnblogs.com/mc67/p/4801369.html
Copyright © 2011-2022 走看看