zoukankan      html  css  js  c++  java
  • 前端 实用的冷门知识 持续更新中......

     

    1.类似于jquery中的  toggle()

     // 如果有这个类名,就去掉,如果没有,就加上
            div.classList.toggle("expand");

    2.css3中   columns属性实现瀑布流布局  ,多列布局

    div
    {
        columns:100px 3;   //分成3列  每列100px,如果视口缩小 则列数随之减少
        -webkit-columns:100px 3; /* Safari and Chrome */
        -moz-columns:100px 3; /* Firefox */
    }

    column-width给列定义个最小的宽度。默认值为auto表示将根据column-count列的数量自动调整列宽。
    column-count最大列数
    column-gap: 列与列间的间隙, ie下默认为 16px,其它浏览器未明确给出。

    column-rule 每列间隙中的竖线

    column-span: 元素跨越列数(firefox 不支持)

     3.非css3椭圆形阴影写法

    #shadow {
        border-radius: 50%;
        width: 100px;
        height: 100px;
        background: black;
        opacity: 0.5;
        -webkit-filter: blur(10px);
        -webkit-transform: scale(1,0.2);
    }

     4.jq去重

    $.unique(themeIdArr)

    5.数组总的数字字符转为数字

    //使用 map 重新格式化数组中的对象
    ['123','456','789'].map(Number)  //[123,456,789]

     6.判断是否上一页

     function goback(){
            document.referrer === '' ?
              console.log(‘没有上一页时’):
              window.history.go(-1);
        }

    注释:判断是否有没有来源信息就是使用这里的document.referrer,当浏览器得不到上一页的来源信息的时候,document.referrer的返回值就是空字符串''

    7.判断是否为首次加载

    if(window.name == ""){
      console.log("首次被加载");
      window.name = "isReload";  // 在首次进入页面时我们可以给window.name设置一个固定值 
    }else if(window.name == "isReload"){
       console.log("页面被刷新");
    }

    8. 将url中的query参数转换为对象

    出现的问题:   当div渲染时会直接将最终设定的样式渲染上去  ,  并没有是达到  scale(0)到scale(1)  的效果

    function urlToObj(str){
      var obj = {};
      var arr1 = str.split("?");
      var arr2 = arr1[1].split("&");
      for(var i=0 ; i < arr2.length; i++){
        var res = arr2[i].split("=");
        obj[res[0]] = res[1];
      }
      return obj;
    }

    9. js中的强制渲染   getComputedStyle()

    出现的问题:   当div渲染时会直接将最终设定的样式渲染上去  ,  并没有是达到  scale(0)到scale(1)  的效果

    解决方案 :   getComputedStyle(div).top;  当元素刚添加至页面  就先强制渲染  然后再执行下一行代码 来实现效果

    //为了实现动画,添加div的时候,要将它设置为最小
        div.style.transform = "translate(-50%, -50%) scale(0)";
        document.body.appendChild(div);
        //强行让浏览器进行渲染:只要出现读取某个元素最终样式(位置、尺寸)的代码
          getComputedStyle(div).top; //这句代码除了让浏览器强行渲染之外,没有任何其他意义
    
        //将div变回原来的大小
        div.style.transform = "translate(-50%, -50%) scale(1)";

    10. 通过模拟点击,来扩大点击范围

    clickAlabel($('.father02'))
    function clickAlabel(target){
        target.on("click",function(e){
            let nodeName = e.target.nodeName;
            if(nodeName !="A"){
                let link = $(this).find("a")[0];
                link.click();
            }
        })
    }

    11. 通过window对象来获取dom元素

     在元素节点上加上 id , window上就会默认将这个id名作为键名 , 值为dom元素

    举例:

    通过  window.postttt  , 获取到id为 postttt 的元素

    ....

  • 相关阅读:
    How to create jar for Android Library Project
    Very large tabs in eclipse panes on Ubuntu
    64bit Ubuntu, Android AAPT, R.java
    Linux(Ubuntu)下如何安装JDK
    Configure xterm Fonts and Colors for Your Eyeball
    建立、配置和使用Activity——启动其他Activity并返回结果
    建立、配置和使用Activity——使用Bundle在Activity之间交换数据
    建立、配置和使用Activity——启动、关闭Activity
    建立、配置和使用Activity——Activity
    异步任务(AsyncTask)
  • 原文地址:https://www.cnblogs.com/wxyblog/p/12055936.html
Copyright © 2011-2022 走看看