• 常用js代码积累


    1,js判断进入可视区,参考(亲测不行):https://www.cnblogs.com/Marydon20170307/p/8830069.html

    重点学习的话,可参考:

      js计算元素距离顶部的高度及元素是否在可视区判断:https://www.cnblogs.com/damonFeng/archive/2018/01/30/8378123.html

                    https://www.jb51.net/article/103459.htm

    $(window).scroll(function() {
                // 获取的是浏览器可见区域高度(网页的可视区域的高度)(不滚动的情况下)
                var documentClientHeight = document.documentElement.clientHeight || window.innerHeight
                var e = document.getElementById('header-nav');
                // 元素顶端到可见区域(网页)顶端的距离
                var htmlElementClientTop = document.getElementById('header-nav').getBoundingClientRect().top;
                // 网页指定元素进入可视区域
                if (documentClientHeight >= htmlElementClientTop) {
                    // TODO 执行你要做的操作
                    $("#header-nav").addClass("navbar-fixed-top");
                }
            });
    /**
             * 监听网页滚动事件
             */
            window.onscroll = function(){
                // 获取的是浏览器可见区域高度(网页的可视区域的高度)(不滚动的情况下)
                var documentClientHeight = document.documentElement.clientHeight || window.innerHeight
                var e = document.getElementById('header-nav');
                // 元素顶端到可见区域(网页)顶端的距离
                var htmlElementClientTop = document.getElementById('header-nav').getBoundingClientRect().top;
                // 网页指定元素进入可视区域
                if (documentClientHeight >= htmlElementClientTop) {
                    // TODO 执行你要做的操作
                    document.getElementById('header-nav').classList.add('navbar-fixed-top');
                    console.log([document.getElementById('header-nav')]);
                }
            }

      

    getBoundingClientRect深度学习:

           https://www.softwhy.com/article-10033-1.html

      https://developer.mozilla.org/zh-CN/docs/Web/API/Element/getBoundingClientRect 

     2,监听页面滚动事件,参考:https://www.cnblogs.com/smalldy/p/10875654.html

    3,getElementById与$()的区别,参考:https://blog.csdn.net/qq_36378302/article/details/81974246

    getElememtById是获取当前对象,jquery()是获取一个jQuery的对象数组,给getElementById获取的对象加上数组后,这俩个还是不一样,一个是js的数组对象作为容器,也就是用数组做包装,
    $()是封装了一个jQuery的对象数组作为容器,封装了很多方法,相当于与jQuery对象做包装,共同点是都是内部包装的内容都是一样的。

    4,学习滚动插件iScroll

    5,原生实现jquery的prepend,append,before,after

      参考:https://www.mmxiaowu.com/article/58481d53d4352863efb55443

    同时要掌握appendChild函数和createElement和createTextNode函数

    6,fadeIn和fadeOut的使用

    $(document).on("mouseenter","#list-container #list-according .panel", function(){
                    // ohters panel-body fadeOut
                    var panels = $("#list-container .panel");
                    var panelSort = $(this).attr("sort");
                    panels.each(function(i,ele){
                        if(panelSort && panelSort != i){
                            $(ele).find(".panel-body").fadeOut(2000);
                        }
                    })
                    // next panel-body fadeIn
                    $(this).children().fadeIn(1000);
                });

     对比下面的注册两个事件mouseenter和mouseleave事件

    $(document).on("mouseenter","#list-container #list-according .panel", function(){
                    $(this).find(".panel-body").fadeIn(1000);
                });
                $(document).on("mouseleave","#list-container #list-according .panel", function(){
                    $(this).find(".panel-body").fadeOut(2000);
                });

     7,递归遍历对象

    function OS(obj){
                for(var i in obj){
                    console.log("obj[i]", i);
                    if(typeof obj[i] === "object"){
                        OS(obj[i]);
                    }else{
                        if(typeof obj[i] === "function"){
                            console.log("function",obj[i]());
                        }else{
                            console.log(obj[i]);
                        }
                    }
                }
            }
    (function(document){
            var root = {
                id : "001",
                a : {
                    id : "001-001",
                    a1 : "bac",
                    a2 : function(){
                        return "a2";
                    }
                },
                b : {
                    id : "002-001",
                    b1 : "woer",
                    b2 : function(){
                        return "b2";
                    }
                }
            }
            
            function SSO (root,objName){
                var obj = root;
                //debugger;
                var re = null ;
                for(var i in obj){
                    if(i == objName){
                        if(typeof obj[i] === "object"){
                            return re = obj[i];
                        }else if(typeof obj[i] === "function"){
                            return re = obj[i]();
                        }else{
                            return re = obj[i];
                        }
                    }else{
                        if(typeof obj[i] === "object"){
                            re = SSO(obj[i],objName);
                            if(re){
                                return re;
                            }
                        }
                    }
                }
                return re;
            }
            console.log(SSO(root,"b2"));
            
        })();

     8,最基础的页面js模板(单全局变量+对象搜索)

    <script type="text/javascript">
        var TabUserManager = TUM = {
            namespace: function(ns){
                var parts = ns.split("."),
                object = this,
                i,len;
                for(i=0, len=parts.length; i<len; i++){
                    if(!object[parts[i]]){
                        object[parts[i]] = {};
                    }
                    object = object[parts[i]]; 
                }
                return object;
            },
            
            SSO : function(root,objName){
                var obj = root;
                //debugger;
                var re = null ;
                for(var i in obj){
                    if(i == objName){
                        if(typeof obj[i] === "object"){
                            return re = obj[i];
                        }else if(typeof obj[i] === "function"){
                            return re = obj[i]();
                        }else{
                            return re = obj[i];
                        }
                    }else{
                        if(typeof obj[i] === "object"){
                            re = TUM.SSO(obj[i],objName);
                            if(re){
                                return re;
                            }
                        }
                    }
                }
                return re;
            },
            
            uEditPanel : {
                I : function(){
                    return $("#uEditPanel");
                },
            },
            
            uListPanel : { // TRM.uListPanel.
                I : function(){
                    return $("#uListPanel");
                },
                uToolbar : {
                    uCheckBtn : function(){
                        console.log("uCheckBtn");
                    },
                    uAddBtn : function(){
                        console.log("uAddBtn");
                    },
                    uEditBtn : function(){
                        console.log("uEditBtn");
                    },
                    uRemoveBtn : function(){
                        console.log("uRemoveBtn");
                    },
                    uSearchBtn : function(){
                        console.log("uSearchBtn");
                    }
                    
                }
            }
        };
    </script>
  • 相关阅读:
    MVC 导出Execl 的总结几种方式 (一)
    MVC 中导出Execl 对 科学计数 的转化
    MVC 中使用kindEditor 图片上传在IE 上进行上传出现的问题
    C# 后台处理图片的几种方式
    MVC 手机端页面 使用标签file 图片上传到后台处理
    MVC 中使用log4net 打印重复日志解决方法
    MVC 初始 Log4net (一)
    MVC 局部加载页面的实例
    K8S从入门到放弃系列-(16)Kubernetes集群Prometheus-operator监控部署
    K8S从入门到放弃系列-(15)Kubernetes集群Ingress部署
  • 原文地址:https://www.cnblogs.com/lirenhe/p/12443102.html
Copyright © 2020-2023  润新知