❤️快来领取国庆节专属头像!!26种样式随你挑!❤️

Posted 皮小孩ls

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了❤️快来领取国庆节专属头像!!26种样式随你挑!❤️相关的知识,希望对你有一定的参考价值。

最近大家是不是看到很多朋友的头像已经换成国庆专属头像了?我去小程序看了一下,发现要看视频或者广告才能保存图片,真的太气人了!!

于是想自己写一个网页版,随心所欲选择样式,想换就换!!

在线体验地址:定制国庆专属头像

从手机相册选择一个头像(最好是正方形),然后选择一个喜欢的样式,再点击生成就可以了。

这个项目是我从Git上面找的,当时代码已经写的差不多了,但是缺少头像样式,所以就去Git上面看了一下,发现已经有大佬制作好了,于是在大佬的基础上改了一点东西,搭建到我的主机上给大家免费使用。
github源码地址

因为大佬的原项目的文件上传只是一个input,没有样式,所以我加了一个label。

          <div class="operation-btns">
              <label class="button_qwe" for="fle" >选择头像</label>
          <input type="file" id="fle" accept="image/*" style="position:absolute;clip:rect(0 0 0 0);" >
          </div>

另外大佬的项目里面选择头像之后还要点击上传才能显示在页面中,我觉得这样是比较繁琐的,新加了一点代码,使其选择完图片时直接显示。

$('#fle').change(function () {
        // 先获取用户上传的文件对象
        let fileObj = this.files[0];
        // 生成一个文件读取的内置对象
        let fileReader = new FileReader();
        // 将文件对象传递给内置对象
        fileReader.readAsDataURL(fileObj); //这是一个异步执行的过程,所以需要onload回调函数执行读取数据后的操作
        // 将读取出文件对象替换到img标签
        fileReader.onload = function(){  // 等待文件阅读器读取完毕再渲染图片
           $('#create').css('display','inline-block');//显示生成头像

            $('#cropper-img').attr('src',fileReader.result);
        }
    });

我修改后的html代码:

<!doctype html>
<!DOCTYPE html><html lang="en" style="opacity: 1; font-size: 26.6666px;"><head><meta charset="utf-8">
    
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="description" content="迎国庆换新颜">
    <meta name="keywords" content="">
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no">
    <meta name="renderer" content="webkit">
    <meta name="format-detection" content="telphone=no,email=no,address=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta http-equiv="x-dns-prefetch-control" content="on">
    <link rel="icon" href="img/logo.png">
    <title>
      迎国庆换新颜-国庆头像
    </title>
    <script charset="utf-8" async="" src="js/jweixin-1.0.0.js">
    </script>
    <script>
      !
      function() {
        var i = 0; !
        function e(t) {
          var n = 40; (document.documentElement.clientWidth !== window.innerWidth || 0 === document.documentElement.clientWidth && 0 === window.innerWidth) && i < 10 ? (document.documentElement.style.opacity = 0, window.setTimeout(e, 0), i++) : (document.documentElement.style.opacity = 0, setTimeout(function() {
            var e = 500 < window.innerWidth ? 500 : window.innerWidth;
            n = parseInt(e / 750 * 1e4 * 40) / 1e4,
            document.documentElement.style.opacity = 1,
            document.documentElement.style.fontSize = n + "px"
          },
          0))
        } ()
      } ()
    </script>
    <script src="js/TGMobileShare-noadtag19.min.js">
    </script>
    <script>
      !
      function(n) {
        "use strict";
        n.loadCSS || (n.loadCSS = function() {});
        var o = loadCSS.relpreload = {};
        if (o.support = function() {
          var e;
          try {
            e = n.document.createElement("link").relList.supports("preload")
          } catch(t) {
            e = !1
          }
          return function() {
            return e
          }
        } (), o.bindMediaToggle = function(t) {
          function e() {
            t.media = a
          }
          var a = t.media || "all";
          t.addEventListener ? t.addEventListener("load", e) : t.attachEvent && t.attachEvent("onload", e),
          setTimeout(function() {
            t.rel = "stylesheet",
            t.media = "only x"
          }),
          setTimeout(e, 3e3)
        },
        o.poly = function() {
          if (!o.support()) for (var t = n.document.getElementsByTagName("link"), e = 0; e < t.length; e++) {
            var a = t[e];
            "preload" !== a.rel || "style" !== a.getAttribute("as") || a.getAttribute("data-loadcss") || (a.setAttribute("data-loadcss", !0), o.bindMediaToggle(a))
          }
        },
        !o.support()) {
          o.poly();
          var t = n.setInterval(o.poly, 500);
          n.addEventListener ? n.addEventListener("load",
          function() {
            o.poly(),
            n.clearInterval(t)
          }) : n.attachEvent && n.attachEvent("onload",
          function() {
            o.poly(),
            n.clearInterval(t)
          })
        }
        "undefined" != typeof exports ? exports.loadCSS = loadCSS: n.loadCSS = loadCSS
      } ("undefined" != typeof global ? global: this)
    </script>
     <link href="css/chunk-nationaldayhead-vendors.0f433423.css"
    rel="stylesheet" as="style" onload="this.οnlοad=null,this.rel=&quot;stylesheet&quot;">
    <noscript>
      &lt;link href="https://qnlite.gtimg.com/qqnewslite/css/chunk-nationaldayhead-vendors.0f433423.css"
      rel="stylesheet"&gt;
    </noscript>
    <link rel="stylesheet" type="text/css" href="css/r-nationaldayhead.6e9074cf.css">
    <script charset="utf-8" src="js/r-nationaldayhead.516767eb.js">
    </script>
    <link rel="stylesheet" type="text/css" href="css/common.css">
  </head>
  <body class="">
    <div id="app">
      <!---->
      <div class="wrapper" >
        <!-- <img src="http://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eruzEDjGnUFZ8czjIvuBY1xh7Fep9T2gPmRxBoczBVgctkgR2zmsibodaiaqqthY65KiaEYtWzMoxCEg/0"
        alt="" class="img-load" style="width: 9.5rem; position: fixed; top: 0px; left: -9999px;"> -->
        <div class="operation-header">
          <!-- <div class="h-logo">
          </div> -->
          <div class="h-title" style="background-image: url('img/title-image.png');">
          </div>
          <div class="h-slogan" style="background-image: url('img/slogan-image.png');">
          </div>
        </div>
        <div class="operation-number">
选择头像后点击左右按钮切换样式。
        </div>
        <div class="operation-box">
          <div class="prev">
          </div>
          <div class="operation-img">
            <div class="cropper-content">

                <!--width: 1012px; height: 1012px; transform: scale(0.250324, 0.250324) translate3d(-1515.38px, -1515.38px, 0px) rotateZ(0deg)-->
              <div data-v-6dae58fd="" class="vue-cropper" id="vue-cropper">
                <div data-v-6dae58fd="" class="cropper-box" id="cropper-box">
                 <!--  <div data-v-6dae58fd="" class="cropper-box-canvas" style="">
                   
                 </div> -->
                  <img style="width: 100%;height: 100%;" src="img/head.png" alt="cropper-img" id="cropper-img">
                  <img src="img/hat1.png" class="frame-image" id="FrameImage">
                </div>
                <div data-v-6dae58fd="" class="cropper-drag-box cropper-move">
                </div>
                <div data-v-6dae58fd="" class="cropper-crop-box" style="width: 0px; height: 0px; transform: translate3d(0px, 0px, 0px); display: none;">
                  <span data-v-6dae58fd="" class="cropper-view-box">
                    <!-- <img data-v-6dae58fd="" src="blob:https://rl.inews.qq.com/ea5cb9d2-d588-467b-86c7-cc3b33cd260b"
                    alt="cropper-img" style="width: 1012px; height: 1012px; transform: scale(0.250324, 0.250324) translate3d(-1515.38px, -1515.38px, 0px) rotateZ(0deg);"> -->
                  </span>
                  <span data-v-6dae58fd="" class="cropper-face cropper-move">
                  </span>
                  <!---->
                  <!---->
                </div>
              </div>
            </div>
          </div>
          <div class="next">
          </div>
        </div>
                  <div class="operation-btns">
              <label class="button_qwe" for="fle" >选择头像</label>
          <input type="file" id="fle" accept="image/*" style="position:absolute;clip:rect(0 0 0 0);" >
<!--            <a type="button" id="up_button" class="button_qwe">上传头像</a>-->
          </div>
        <div class="operation-btns">
          <!-- <div class="o-btn o-btn2" style="background-image:none;">
          
          
          </div> -->
          <a type="button" id="create" style="display: none;" class="button_qwe">生成头像</a>  
        </div>
          <div class以上是关于❤️快来领取国庆节专属头像!!26种样式随你挑!❤️的主要内容,如果未能解决你的问题,请参考以下文章

免费镜像 ChatGPT 网站随你挑和分享一批可用的 API Keys

零代码FPGA图形化编程 VS 精妙FPGA编程实现软件无线电,随你挑

知乎热搜,最全1184页Spring全家桶面试资料库,学习完大厂offer随你挑

超喜庆的微信渐变国旗头像,最全版!

微信渐变国旗头像,最全版本来了!!

快来领取 | Bootstrap实战视频教程