2018.1项目小结

11 篇文章 0 订阅
11 篇文章 0 订阅

2018.1项目小结

1.页面中出现放大镜效果

  • 此问题出现在iOS系统,长按出现放大镜
  • 出现的原因是有input输入框,并且字体较小(用react等构建的项目,切换状态,不是路由显示其他页面时候,在其他页面长按也会出现放大镜),解决办法是字体大于16px,rem单位的16px转化后可能无效

2.长按页面出现复制

-webkit-user-select: none;    禁止长按复制,粘贴

3.输入框input文字居中,并且有文字时候光标居中

  • 在css中如果我们定义了input高度在输入时会发现光标位置靠上了不在居中了,在Chrome浏览器中,当设置了line-height时,input无文字,光标高度与line-height一致;input有文字,光标高度从input顶部到文字底部。当没有设置line-height时,则是与font-size一致。
  • 解决方案:让input的高度等于里面文字的高度,然后用padding把框撑起来,这样光标的高度和位置就固定了。

4.canvas绘图转换成图片坑

  • Uncaught SecurityError: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.


    var img2 = new Image,
    canvas = document.createElement("canvas"),
    ctx = canvas.getContext("2d");
    img2.src = src;
    img2.onload = function() {
    canvas.width = img2.width;
    canvas.height = img2.height;
    ctx.drawImage( img2, 0, 0 );
    console.log(canvas.toDataURL("image/png"));
    }

    报错的原因是图片跨域了,解决办法是加上

    var img2 = new Image,
    canvas = document.createElement("canvas"),
    ctx = canvas.getContext("2d");
    img2.src = src;
    img2.crossOrigin = "Anonymous";  // 加上这个可以跨域
    img2.onload = function() {
    canvas.width = img2.width;
    canvas.height = img2.height;
    ctx.drawImage( img2, 0, 0 );
    console.log(canvas.toDataURL("image/png"));
    }

    如果还没解决,那就是图片的服务器不允许,在服务器上相应头里:设置Access-Control-Allow-Origin为 * ,就可以允许跨域。

  • 解决了转化成图片,但是在ios中长按不能保存图片,问题很严重,解决办法

    var img2 = new Image,
    canvas = document.createElement("canvas"),
    ctx = canvas.getContext("2d");
    img2.crossOrigin = "Anonymous";
    img2.onload = function() {
    canvas.width = img2.width;
    canvas.height = img2.height;
    ctx.drawImage( img2, 0, 0 );
    toPng()
    }
    img2.src = src;  // 把这个放到onload事件之后
    function toPng(){
      const img = document.createElement('img');
      img.id = 'appendImg';
      img.src = this.canvas.toDataURL('image/png');
      img.style.width = this.frame.width + 'px';
      img.onload = () => { 
    document.getElementById('result').removeChild(document.getElementById('canvas'));
        document.getElementById('result').appendChild(img);
        const newImage = document.getElementById('appendImg');
      };
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值