JS笔记

 

彩带特效

// html部分

<canvas id="evanyou" width="1920" height="934"></canvas>

// style部分

<style>
 #evanyou{position:fixed;width:100%;height:100%;left:0;top:0;z-index:-10;} 
</style>

// js部分

    var c = document.getElementById('evanyou'),   
        x = c.getContext('2d'),         
        pr = window.devicePixelRatio || 1, 
        w = window.innerWidth,
        h = window.innerHeight,
        f = 90,
        q,
        m = Math,
        r = 0,  
        u = m.PI * 2,
        v = m.cos,  
        z = m.random;   
        c.width = w * pr;  
        c.height = h * pr;
        x.scale(pr, pr);    
        x.globalAlpha = 0.6;    
        function evanyou() {
            x.clearRect(0, 0, w, h)
            q = [{ x : 0, y: h * .7 + f }, { x: 0, y: h * .7 - f }]
            while (q[1].x < w + f) d(q[0], q[1])
        }
        function d(i, j) {
            x.beginPath()
            x.moveTo(i.x, i.y)
            x.lineTo(j.x, j.y)
            var k = j.x + (z() * 2 - 0.25) * f,
                n = y(j.y)
            x.lineTo(k, n)
            x.closePath()
            r -= u / -50
            x.fillStyle = '#' + (v(r) * 127 + 128 << 16 | v(r + u / 3) * 127 + 128 << 8 | v(r + u / 3 * 2) * 127 + 128).toString(16)
            x.fill()
            q[0] = q[1]
            q[1] = { x: k, y: n }
        }
        function y(p) {
            var t = p + (z() * 2 - 1.1) * f
            return (t > h || t < 0) ? y(p) : t
        }
        document.onclick = evanyou
        document.ontouchstart = evanyou
        evanyou();

网站标题

window.onload = function () {
          document.addEventListener('visibilitychange', function () {
              document.title = document.hidden ? "(●—●)喔哟,崩溃啦!" : "(/≧▽≦/)咦!又好了!";
          });
}

文字滚动

html部分

    <div id="demo">
                <div id="demo1">
                <div>我是滚动内容</div> 
                <div>你来抓我啊</div>
                <div>嗖嗖嗖</div>
                <div>2333333333333333333333333</div>
                </div>
                <div id="demo2"></div>
          </div>

css部分 

#demo{overflow:hidden;height:200px;width:250px;border:1px solid #6699cc;font-size:14px;color:#336699;line-height:22px;text-align:left;padding:10px;} 

js部分

  var autoScroll = ()=>{
            var demo=document.getElementById("demo");
            var demo1=document.getElementById("demo1");
            var demo2=document.getElementById("demo2");
            var speed=30;//滚动速度值,值越大速度越慢
            var nnn=200/demo1.offsetHeight;
            for(var i=0;i<nnn;i++){demo1.innerHTML+="<br />"+ demo1.innerHTML}
            demo2.innerHTML = demo1.innerHTML    //克隆demo2为demo1
            function Marquee(){
                if(demo2.offsetTop-demo.scrollTop<=0)    //当滚动至demo1与demo2交界时
                    demo.scrollTop-=demo1.offsetHeight    //demo跳到最顶端
                else{
                    demo.scrollTop++     //如果是横向的 将 所有的 height top 改成 width left
                }
            }
            var MyMar = setInterval(Marquee,speed);        //设置定时器
            demo.onmouseover = function(){clearInterval(MyMar)}    //鼠标经过时清除定时器达到滚动停止的目的
            demo.onmouseout = function(){MyMar = setInterval(Marquee,speed)}    //鼠标移开时重设定时器
        }
        autoScroll();  

常用正则

  var pattphone = /^(13[0-9]|14[0-9]|15[0-9]|166|17[0-9]|18[0-9]|19[8|9])d{8}$/ ;    //手机号码验证
        var pattemail = /^w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$/;    //email验证
        var pattcard = /^((d{18})|([0-9x]{18})|([0-9X]{18}))$/;    //身份证号验证
        var pattuser = /^[a-zA-Z][a-zA-Z0-9_]{4,15}$/; //(字母开头,允许5-16字节,允许字母数字下划线)
        var pattmoney = /^([+-]?)((d{1,3}(,d{3})*)|(d+))(.d{2})?$/; //货币验证
        var pattmoney2 = /^d+(.d+)?$/;

JS获取地址栏数据 

    function getQueryVariable(variable){
          var query = window.location.search.substring(1);
          var vars = query.split("&");
          for (var i=0;i<vars.length;i++) {
                  var pair = vars[i].split("=");
                  if(pair[0] == variable){return pair[1];}
          }
          return(false);
        }
        // 使用方法
        例:localhost:3000/index.html?a=a&b=b
        getQueryVariable("a") // a
        getQueryVariable("b") // b

JS时间函数封装

function formateDate(datetime,type) {
            var year = datetime.getFullYear(),
                month = ("0" + (datetime.getMonth() + 1)).slice(-2),
                date = ("0" + datetime.getDate()).slice(-2),
                hour = ("0" + datetime.getHours()).slice(-2),
                minute = ("0" + datetime.getMinutes()).slice(-2),
                second = ("0" + datetime.getSeconds()).slice(-2);
            if(type === "Y-M-D h:min:s"){
                var result = year + "-"+ month +"-"+ date +" "+ hour +":"+ minute +":" + second;
            }else if(type === "Y-M-D"){
                var result = year + "-"+ month +"-"+ date;
            }if(type === "h:min:s"){
                var result = hour +":"+ minute +":" + second;
            }else if(type === "h:min"){
                var result =  hour +":"+ minute;
            }else if(type === "h"){
                var result = hour;
            }else if(type === "min"){
                var result = minute;
            }else if(type === "s"){
                var result =second;
            }
            return result;
}

  

JS生成二维码

 // 需要引入外部 js 
        <script src="./qrcode.min.js"></script>
        // vue react 项目 可以 :
        // npm install qrcodejs2 --save
        // import QRcode form 'qrcodejs2'

        // html
        <div id="qrcode"></div> //生成二维码的位置
        // js
        window.onload =function(){
            var qrcode = new QRCode(document.getElementById("qrcode"), {
                width : 96,//设置宽高
                height : 96
            });
            qrcode.makeCode("https://www.baidu.com");
        }

JS判断数据类型

  function getType(obj) {
          var type = typeof obj;
          if (type !== 'object') {
            return type;
          }
          //如果不是object类型的数据,直接用typeof就能判断出来
          //如果是object类型数据,准确判断类型必须使用Object.prototype.toString.call(obj)的方式才能判断
          return Object.prototype.toString.call(obj).replace(/^[object (S+)]$/, '$1');
        }
  

π的部分值(部分值)

const PI = 3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983850549458858692699569092721079750930295532116534498720275596023648066549911988183479775356636980742654252786255181841757467289097777279380008164706001614524919217321721477235014144197356854816136115735255213347574184946843852332390739414333454776241686251898356948556209921922218427255025425688767179049460165346680498862723279178608578438382796797668145410095388378636095068006422512520511739298489608412848862694560424196528502221066118630674427862203919494504712371378696095636437191728746776465757396241389086583264599581339047802759009946576407895126946839835259570982582262052248940772671947826848260147699090264013639443745530506820349625245174939965143142980919065925093722169646151570985838741059788595977297549893016175392846813826868386894277415599185592524595395943104997252468084598727364469584865383673622262609912460805124388439045124413654976278079771569143599770012961608944169486855584840635342207222582848864815845602850601684273945226746767889525213852254995466672782398645659611635488623057745649803559363456817432411251507606947945109659609402522887971089314566913686722874894056010150330861792868092087476091782493858;

  

图片转base64

/**
 * 图像转Base64
 */
function getBase64Image(img) {
    var canvas = document.createElement("canvas");
    canvas.width = img.width;
    canvas.height = img.height;
    var ctx = canvas.getContext("2d");
    ctx.drawImage(img, 0, 0, img.width, img.height);
    var ext = img.src.substring(img.src.lastIndexOf(".") + 1).toLowerCase();
    var dataURL = canvas.toDataURL("image/" + ext);
    return dataURL;
}

//使用
var img = "http://xxx/timg.jpg";
var image = new Image();
image.src = img;
image.onload = function() {
    //文件的Base64字符串
    var base64 = getBase64Image(image);
    console.log(base64);
}

 

 

指定生成随机范围数

//生成从minNum到maxNum的随机数
function randomNum(minNum,maxNum){ 
    switch(arguments.length){ 
        case 1: 
            return parseInt(Math.random()*minNum+1,10); 
        break; 
        case 2: 
            return parseInt(Math.random()*(maxNum-minNum+1)+minNum,10); 
        break; 
            default: 
                return 0; 
            break; 
    } 
}

  

判断点是否在圆内

function pointInsideCircle(point, circle, r) {  
	if (r===0) return false  
	var dx = circle[0] - point[0]  
	var dy = circle[1] - point[1]  
	return dx * dx + dy * dy <= r * r;		  
}

  

随机颜色

        function rgb(){//rgb颜色随机
            var r = Math.floor(Math.random()*256);
            var g = Math.floor(Math.random()*256);
            var b = Math.floor(Math.random()*256);
            var rgb = '('+r+','+g+','+b+')';
            return rgb;
        }
        function color16(){//十六进制颜色随机
            var r = Math.floor(Math.random()*256);
            var g = Math.floor(Math.random()*256);
            var b = Math.floor(Math.random()*256);
            var color = '#'+r.toString(16)+g.toString(16)+b.toString(16);
            return color;
        }            

 

posted @ 2019-03-09 14:39  bb_c_e_f  阅读(241)  评论(0)    收藏  举报