作者: admin

  • css3斜线延长动画

    //重点是transform-origin这个属性,默认作用的重心是元素正中间,需要设置为如下
    transform: rotate(0deg);//向右延长
    transform-origin: 0% 0%;  
    
    transform: rotate(180deg);//向左延长,仅仅只改变角度即可
    transform-origin: 0% 0%;

    直接案例:demo

     

  • js将url图片地址转base64

    关键还是要通过canvas对象的toDataURL方法去实现

    <div id="showme"></div>
    
    
    let imgSrc = "https://cdnpw.chinaesport.com/kdhxoi/storage/emulated/0/tencent/MicroMsg/WeiXin/mmexport1592366797764.webp";
    
    //width、height调用时传入具体像素值,控制大小 ,不传则默认图像大小
    function getBase64Image(img, width, height) {
        var canvas = document.createElement("canvas");
        canvas.width = width ? width : img.width;
        canvas.height = height ? height : img.height;
        var ctx = canvas.getContext("2d");
        ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
        var dataURL = canvas.toDataURL();
        return dataURL; //返回base64
    }
    
    
    
    
    function getCanvasBase64(img) {
        var image = new Image();
        //至关重要
        image.crossOrigin = '';
        image.src = img;
        //至关重要
        var deferred = $.Deferred();
        if (img) {
            image.onload = function () {
                console.log(image) //将<img crossorigin="" src="xx.webp">值传给canvas处理
                deferred.resolve(getBase64Image(image));//将base64传给done上传处理
            }
            return deferred.promise();//问题要让onload完成后再return sessionStorage['imgTest']
        }
    }
    
    //调用
    getCanvasBase64(imgSrc)
        .then(function (base64) {
            // 这里拿到的是转换后的base64地址,可以做其他操作
            // console.log("方式二》》》》》》》》》",base64);
            $('<img src="'+base64+'">').appendTo('#showme')
        }, function (err) {
            console.log(err);
        });

     

     

  • js中在onload回调事件需要return返回值

    function test(url){
     var str=undefined;
     var img =new Image()
     img.src=url
     img.onload=function(){
       str=img
     }
     return str
    }

    事实上test()直接就返回了undefined,说明onload要等待img资源都加再完成了才能执行,不能保证同步执行

     

    解决方法一:

    基于jQuery兼容性好

    function test(url){
        var img =new Image();
        img.title='xxxx';
        img.src=url;
        var deferred = $.Deferred();
        img.onload=function () {
           deferred.resolve(img);
        }
        return deferred.promise();
    }
    
    //图片地址加载有延迟
    test('http://lorempixel.com/100/100?0.6412381180562079').then((res)=>{
        console.log(res)  //<img title="xxxx" src="http://lorempixel.com/100/100?0.6412381180562079">
    })

     

    解决方法二:

    不需要任何第三方插件

    function test(url){
        return new Promise(function (a,b) {
                var img =new Image();
                img.title='xxxx';
                img.src=url;
                img.onload=function () {
                    a(img)
                }
        })
    }
    
    test('http://lorempixel.com/100/100?0.6412381180562079').then((res)=>{
        console.log(res)
    })

     

     

  • 解决:cmd显示中文乱码

    输入chcp 936回车即可解决

    但每次启动cmd都会重置,所以要修改注册表直接在win+R窗口处粘贴以下代码直接运行

    reg add HKEY_CURRENT_USER\Console\%"SystemRoot"%_system32_cmd.exe /v CodePage /t REG_DWORD /d 936 /f