zoukankan      html  css  js  c++  java
  • 关于随机生成颜色

    本人暂时算是css新手,对以下方法并没有完全弄明白,此篇随笔收集颜色随机生成方法,以备急用。

    方法1:随机生成6个字符然后再串到一起,闭包调用自身与三元运算符让程序变得内敛,初心者应该好好学习这种写法

    var getRandomColor = function(){    

      return  '#' +    
        (function(color){    
        return (color +=  '0123456789abcdef'[Math.floor(Math.random()*16)])    
          && (color.length == 6) ?  color : arguments.callee(color);    
      })('');    

    方法2:把Math对象,用于生成hex颜色值的字符串提取出来,并利用第三个参数来判断是否还继续调用自身。

    var getRandomColor = function(){    

      return (function(m,s,c){    
        return (c ? arguments.callee(m,s,c-1) : '#') +    
          s[m.floor(m.random() * 16)]    
      })(Math,'0123456789abcdef',5)    

    方法3:这个要求我们对数组做些扩展,map将返回一个数组,然后我们再用join把它的元素串成字符。

    以下为引用的内容:

    Array.prototype.map = function(fn, thisObj) {

      var scope = thisObj || window; 
      var a = []; 
      for ( var i=0, j=this.length; i < j; ++i ) { 
        a.push(fn.call(scope, this[i], i, this)); 
      } 
      return a; 
    }; 
    var getRandomColor = function(){ 
      return '#'+'0123456789abcdef'.split('').map(function(v,i,a){ 
        return i>5 ? null : a[Math.floor(Math.random()*16)] }).join(''); 
    }

    方法4:

    var getRandomColor = function(){

      return '#'+('00000'+(Math.random()*0x1000000<<0).toString(16)).substr(-6); 
    }

    方法5:

    function Color()
    {
      var color= '#'+(function(h){
        return new Array(7-h.length).join("0")+h
        })((Math.random()*0x1000000<<0).toString(16))

      return color;
    }

  • 相关阅读:
    SpringBoot日记——删除表单-Delete篇
    SpringBoot日记——信息修改PUT篇
    SpringBoot日记——按钮的高亮和添加篇
    SpringBoot日记——Thymeleaf进阶小篇
    SpringBoot日记——登录与拦截器篇
    SpringBoot日记——国际化篇
    SpringBoot日记——实战篇——Url定向
    SpringBoot日记——SpringMvc自动配置与扩展篇
    SpringBoot日记——Thymeleaf模板引擎篇
    【Leetcode】22. Generate Parentheses
  • 原文地址:https://www.cnblogs.com/openflyme/p/4723677.html
Copyright © 2011-2022 走看看