zoukankan      html  css  js  c++  java
  • 一些CSS/JS小技巧

    CSS部分

    1、文本框不可点击

    .inputDisabled{ background-color: #eee;cursor: not-allowed;}

    2、禁止复制粘贴

    onpaste="return false" oncontextmenu="return false" oncopy="return false" oncut="return false"

    JS部分

    1、实现复选框部分选中状态

    1 <input id="chk1" type="checkbox" />
    2 <script>
    3     document.getElementById('chk1').indeterminate = true;
    4 </script>

     2、浅拷贝  参考:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html

    1 function extendCopy(p) {
    2     var c = {};
    3     for (var i in p) {      
    4         c[i] = p[i];    
    5     }
    6     c.uber = p;
    7     return c;  
    8 }

    3、深拷贝  参考:http://www.ruanyifeng.com/blog/2010/05/object-oriented_javascript_inheritance_continued.html

    function deepCopy(p, c) {    
        var c = c || {};    
        for (var i in p) {      
            if (typeof p[i] === 'object') {        
                c[i] = (p[i].constructor === Array) ? [] : {};        
                deepCopy(p[i], c[i]);      
            } else {         
                c[i] = p[i];      
            }    
        }    
        return c;  
    }

     4、生成lowerValue(包括)到 upperValue(包括)的随机整数。

    1 function selectFrom(lowerValue, upperValue) {
    2     var choices = upperValue - lowerValue + 1;
    3     return Math.floor(Math.random() * choices + lowerValue);
    4 }

     5、确定属性是原型中的属性

    1 function hasPrototypeProperty(object, name) {
    2     return !object.hasOwnProperty(name) && (name in object);
    3 }

    6、跨浏览器取得窗口左边和上边的位置

    1 var leftPos = (typeof window.screenLeft == "number") ? window.screenLeft : window.screenX;
    2 var topPos = (typeof window.screenTop == "number") ? window.screenTop : window.screenY;

     7、获取地址栏参数

     1 /*
     2 获取页面url参数
     3 调用方法:
     4 alert(GetQueryString("参数名1"));
     5 alert(GetQueryString("参数名2")); 
     6 */
     7 function getQueryString(name) {
     8     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
     9     var r = window.location.search.substr(1).match(reg);
    10     if (r != null) return unescape(r[2]);
    11     return null;
    12 }
    13 /*
    14 获取页面url参数
    15 调用方法:
    16 Request = GetRequest(); 
    17 var 参数1,参数2,参数3,参数N; 
    18 参数1 = Request['参数1']; 
    19 参数2 = Request['参数2']; 
    20 
    21 */
    22 function GetRequest() {
    23     var url = location.search; //获取url中"?"符后的字串 
    24     var theRequest = new Object();
    25     if (url.indexOf("?") != -1) {
    26         var str = url.substr(1);
    27         strs = str.split("&");
    28         for (var i = 0; i < strs.length; i++) {
    29             theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
    30         }
    31     }
    32     return theRequest;
    33 }

     8、计算元素在页面的偏移量

     1 //左偏移量
     2 function getElementLeft(element) {
     3     var actualLeft = element.offsetLeft;
     4     var current = element.offsetParent;
     5     while (current !== null) {
     6         actualLeft += current.offsetLeft;
     7         current = current.offsetParent;
     8     }
     9     return actualLeft;
    10 }
    11 //上偏移量
    12 function getElementTop(element) {
    13     var actualTop = element.offsetTop;
    14     var current = element.offsetParent;
    15     while (current !== null) {
    16         actualTop += current.offsetTop;
    17         current = current.offsetParent;
    18     }
    19     return actualTop;
    20 }

     9、判断浏览器类型

     1 function getBrowserType() {
     2     var ua = navigator.userAgent.toLowerCase(), browserType = "";
     3     if (window.ActiveXObject) {
     4         //Sys.ie = ua.match(/msie ([d.]+)/)[1];
     5         Sys.ie = ua;
     6         browserType = "IE";
     7     }
     8     else if (document.getBoxObjectFor) {
     9         //Sys.firefox = ua.match(/firefox/([d.]+)/)[1];
    10         Sys.firefox = ua;
    11         browserType = "firefox";
    12     }
    13     else if (window.MessageEvent && !document.getBoxObjectFor) {
    14         //Sys.chrome = ua.match(/chrome/([d.]+)/)[1];
    15         Sys.chrome = ua;
    16         browserType = "chrome";
    17     }
    18     else if (window.opera) {
    19         //Sys.opera = ua.match(/opera.([d.]+)/)[1];
    20         Sys.opera = ua;
    21         browserType = "opera";
    22     }
    23     else if (window.openDatabase) {
    24         //Sys.safari = ua.match(/version/([d.]+)/)[1];
    25         Sys.safari = ua;
    26         browserType = "safari";
    27     }
    28     return browserType;
    29 }
  • 相关阅读:
    Vue Cli 3.x项目如何部署到IIS子站点下
    IntelliJ IDEA 2018.3.2无法正常输入字符问题解决方案
    解决macOS git clone Azure DevOps提示身份认证失败问题
    JDBC driver for MySQL连接提示"The connection property 'zeroDateTimeBehavior' acceptable values are: 'CONVERT_TO_NULL', 'EXCEPTION' or 'ROUND'. The value 'convertToNull' is not acceptable."解决方案
    dbeaver导出MySQL的架构提示"IO Error: Utility 'mysqldump.exe' not found in client home 'MySQL Connector/Net"解决方案
    Git 常用命令和 Git Flow 梳理
    gitflow工作流程基本命令使用
    RocketMQ学习分享
    解决docker中使用nginx做负载均衡时并发过高时的一些问题
    Tomcat中session共享问题的简单解决办法
  • 原文地址:https://www.cnblogs.com/gaozejie/p/5072503.html
Copyright © 2011-2022 走看看