上传头像,js实现

xiaoxiao2021-02-28  54

html:

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title>我的资料</title>     <meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1.0"/>     <link type="text/css" rel="stylesheet" href="../font/iconfont.css"/>     <link type="text/css" rel="stylesheet" href="../styles/mymsg.css"/> </head> <body> <!--头部-->     <div class="hea border">         <ul class="header">             <li class="left-btn"><a href="javascript:window.history.go(-1);"><span class="iconfont icon-fanhui"></span></a></li>             <li class="page-title">我的资料</li>             <li class="right-btn"><a href="###"><span class="iconfont icon-fenxiang"></span></a></li>         </ul>     </div> <!--内容区域-->     <div class="content">         <ul>             <li class="border">更换头像<div class="box"><img class="bendi"  src="../images/mi.gif"/><span class="iconfont icon-11"></span></div></li>             <li class="border">更换主题背景<div class="box"><img src="../images/mi.gif"/><span class="iconfont icon-11"></span></div></li>             <li class="border">手机号<div class="box"><span class="iconfont icon-11"></span></div></li>             <li class="border">昵称<div class="box">匿名<span class="iconfont icon-11"></span></div></li>             <li class="border">性别<div class="box">未知<span class="iconfont icon-11"></span></div></li>             <li class="border">生日<div class="box"><span class="iconfont icon-11"></span></div></li>             <li class="border">所在地<div class="box">点击设置<span class="iconfont icon-11"></span></div></li>             <li class="border">音乐喜好<div class="box">点击设置<span class="iconfont icon-11"></span></div></li>         </ul>     </div> <div class="tankuang"> <p class="select">选择图片</p> <div class="inner"> <p class="xiangce upload">从手机相册选择 <input type="file" class="upload_pic" id="upload" /></p> <p class="close">取消</p> </div> </div> </body> </html>

css:

@charset "UTF-8"; /**  * Yo框架全局基础方法  -----------------------  * Yo内置了包括响应式方案,CSS3兼容性方案,厂商前缀方案,iconfont方案,flex布局等全局方法  *  * @class classes  * @module Yo  */ /**  * 给需要的属性加厂家前缀  * @method prefix  * @param {String} $property 指定属性  * @param {String} $value 指定属性值  */ /**  * 四则运算  * @method calc  * @param {String} $property 指定需要进行计算的CSS属性  * @param {String} $value 与原生CSS语法一致,使用方式如:@include calc(width, 100% - 0.1rem);  */ /**  * 定义渐变色值  * @method gradient  * @param {String} $type 指定渐变的4种类型:linear, repeating-linear, radial, repeating-radial  * @param {String} $gradient 指定渐变取值,与w3c最新原生语法一致  */ /**  * 定义响应式方案  * @method responsive  * @param {String} $media 指定媒体查询条件  */ /**  * 定义字体图标  * @method yofont  */ /**  * 滤镜  * @method filter  * @param {String} $filter 取值与原生语法一致  */ /**  * 定义UA默认外观  * @method appearance  * @param {String} $appearance 指定UA外观类型  */ /**  * 定义是否可以选中元素  * @method user-select  * @param {String} $user-select 指定是否可以选中  */ /**  * 定义背景图像缩放(Android Browser2.3.*还需要厂商前缀)  * @method background-size  * @param {String | Length} $background-size 指定背景图缩放值  */ /**  * 定义背景裁减(Android Browser2.3.*还需要厂商前缀)  * @method background-clip  * @param {String} $background-clip 指定背景图缩放值  */ /**  * 定义背景显示区域(Android Browser2.3.*还需要厂商前缀)  * @method background-origin  * @param {String} $background-origin 指定背景图缩放值  */ /**  * 定义盒模型  * @method box-sizing  * @param {String} $box-sizing 的2个值分别为:content-box(标准盒模型) | border-box(怪异盒模型)  */ /**  * 定义圆角  * @method border-radius  * @param {String} $border-radius 取值与原生语法一致  */ /**  * 定义简单变换  * @method transform  * @param {String} $transform 取值与原生语法一致  */ /**  * 定义变换原点  * @method transform-origin  * @param {String} $transform-origin 取值与原生语法一致  */ /**  * 定义动画  * @method animation  * @param {String} $animation 取值与原生语法一致  */ /**  * 定义补间  * @method transition  * @param {String} $transition 取值与原生语法一致  */ /**  * 定义显示类型为伸缩盒  * @method flexbox  * @param {String} $flexbox 默认值:flex,取值与最新原生语法一致  */ /**  * 定义伸缩盒子元素如何分配空间  * @method flex  * @param {String} $flex 默认值:1,取值与最新原生语法一致  * @param {String} $direction 默认值: row  */ /**  * 定义伸缩盒子元素的排版顺序  * @method order  * @param {String} $order 默认值:1,取值与最新原生语法一致  */ /**  * 定义伸缩盒子元素的流动方向  * @method flex-direction  * @param {String} $flex-direction 默认值:row,取值与最新原生语法一致  */ /**  * 定义伸缩盒子元素溢出排版  * @method flex-wrap  * @param {String} $flex-wrap 默认值:nowrap,取值与最新原生语法一致  */ /**  * 定义伸缩盒子元素的水平对齐方式  * @method justify-content  * @param {String} $justify-content 默认值:center,取值与最新原生语法一致  */ /**  * 定义伸缩盒子元素的垂直对齐方式  * @method align-items  * @param {String} $align-items 默认值:center,取值与最新原生语法一致  */ /**  * 定义伸缩盒子元素自身的垂直对齐方式  * @method align-self  * @param {String} $align-self 默认值:center,取值与最新原生语法一致  */ /**  * 定义root root-scroll  * @method root-scroll  * @param {String} $root-scroll 指定scroll类型,取值overflow属性的标准值  */ /**  * 定义是否有滚动条  * @method overflow  * @param {String} $overflow 默认值:auto,取值与最新原生语法一致  */ /**  * 生成矩形方法  * @method rect  * @param {Length} $width 定义矩形的长度  * @param {Length} $height 定义矩形的高度  */ /**  * 生成正方形方法  * @method square  * @param {Length} $size 定义正方形的边长  */ /**  * 生成圆形方法  * @method circle  * @param {Length} $size 定义圆的半径长度  * @param {Length} $radius 定义圆的圆角半径长度  */ /**  * 生成全屏方法  * @method fullscreen  * @param {Integer} $z-index 定义层叠级别  */ /**  * 清除浮动方案  * @method clearfix  */ /**  * 链接处理方法  * @method link  * @param {Color} $color 定义链接颜色  */ /**  * 强制换行方案  * @method wrap  */ /**  * 单行文本溢出显示方案  * @method ellipsis  * @param {Boolen} $ellipsis 定义是否需要省略号  */ /**  * 文字隐藏方案  * @method texthide  */ /**  * 清除间隙方案-容器  * @method killspace  */ /**  * 清除间隙方案-子级  * @method killspace-item  */ /**  * 未知尺寸元素垂直居中解决方案-容器  * @method valign  */ /**  * 未知尺寸元素垂直居中解决方案-子级  * @method valign-item  */ /**  * 已经尺寸元素垂直居中解决方案  * @method alignment  * @param {Length} $width 居中元素的宽度  * @param {Length} $height 居中元素的高度  */ /* border */ i {   font-style: normal; } /*内容的背景色*/ /*作用不很多*/ /*普通字体颜色*/ /*图标颜色*/ /*按钮的颜色*/ /*播放按钮的颜色*/ /*普通字体hover时的color*/ /*list  lianbiao*/ /*列表*/ /*一像素边框*/ .border {   border: none;   position: relative; } .border:after {   content: "";   position: absolute;   left: 0;   bottom: 0;   width: 100%;   height: 1px;   border-bottom: 1px solid #d0d0d0;   transform: scaleY(0.5); } .border1 {   border: none;   position: relative; } .border1:before {   content: "";   position: absolute;   left: 0;   top: 0;   width: 100%;   height: 1px;   border-bottom: 1px solid #d0d0d0;   transform: scaleY(0.5); } * {   margin: 0;   padding: 0; } body {   background-color: #f4f5f7;   font-family: "Microsoft Yahei";   font-size: 14px;   overflow: hidden; } img {   display: block; } html {   font-size: 31.25vw; } ul li, nav li {   list-style: none; } .header {   display: flex;   height: 0.54rem;   line-height: 0.53rem; }   .header .left-btn, .header .right-btn {     width: 0.5rem;     text-align: center; }     .header .left-btn a, .header .right-btn a {       color: #fff;       text-decoration: none; }       .header .left-btn a span, .header .right-btn a span {         font-size: 20px; }   .header .page-title {     flex: 1;     color: #fff; } .btn {   width: 100%;   height: 0.4rem; }   .btn .reg {     padding: 0 0.05rem;     width: 92%;     margin: 0 auto;     display: block;     height: 0.4rem;     line-height: 0.4rem;     text-align: center;     font-size: 16px;     background-color: #ff6a6e;     color: #fff;     text-decoration: none;     font-weight: bold;     margin-top: 0.3rem;     border-radius: 0.04rem; } .mark {   width: 100%;   height: 100%;   background: rgba(0, 0, 0, 0.5);   position: absolute;   left: 0;   top: 0;   z-index: 90;   display: none; } .share {   width: 100%;   background: #fff;   z-index: 99;   position: absolute;   left: 0;   bottom: -4.08rem;   display: none; }   .share ul {     width: 90%;     padding: 0 5%; }     .share ul li {       height: 0.5rem;       line-height: 0.5rem;       border-bottom: 1px solid #eee;       color: #333333; }       .share ul li span {         margin-right: 0.1rem;         color: #ff6a6e; } #pullDown, #pullUp {   background: #f4f5f7;   height: 0.4rem;   line-height: 0.4rem;   font-weight: bold;   font-size: 14px;   color: #888;   width: 100%;   text-align: center; } #pullDown .pullDownIcon, #pullUp .pullUpIcon {   display: inline-block;   float: left;   position: absolute;   left: 30%;   width: 0.4rem;   height: 0.4rem;   line-height: 0.4rem;   background: url(../images/pull-icon.png) 0 0 no-repeat;   -webkit-background-size: 0.4rem 0.8rem;   background-size: 0.4rem 0.8rem;   -webkit-transition-property: -webkit-transform;   -webkit-transition-duration: 250ms; } #pullDown .pullDownLabel, #pullUp .pullUpLabel {   margin-left: 0.2rem;   display: inline-block;   height: 0.4rem;   line-height: 0.4rem; } #pullDown .pullDownIcon {   -webkit-transform: rotate(0deg) translateZ(0); } #pullUp .pullUpIcon {   -webkit-transform: rotate(-180deg) translateZ(0); } #pullDown.flip .pullDownIcon {   -webkit-transform: rotate(-180deg) translateZ(0); } #pullUp.flip .pullUpIcon {   -webkit-transform: rotate(0deg) translateZ(0); } #pullDown.loading .pullDownIcon, #pullUp.loading .pullUpIcon {   background-position: 0 100%;   -webkit-transform: rotate(0deg) translateZ(0);   -webkit-transition-duration: 0ms;   -webkit-animation-name: loading;   -webkit-animation-duration: 2s;   -webkit-animation-iteration-count: infinite;   -webkit-animation-timing-function: linear; } @-webkit-keyframes loading {   from {     -webkit-transform: rotate(0deg) translateZ(0); }   to {     -webkit-transform: rotate(360deg) translateZ(0); } } .sideSlide {   width: 80%;   height: 100%;   position: fixed;   left: -80%;   top: 0;   background: #f4f5f7;   z-index: 100; }   .sideSlide .slideTop {     width: 100%;     height: 1rem;     padding-bottom: 0.2rem;     background-color: #ff6a6e;     position: relative;     color: #fff; }     .sideSlide .slideTop .pic {       position: absolute;       left: 0.15rem;       top: 0.2rem; }     .sideSlide .slideTop a {       color: #333333;       text-decoration: none; }     .sideSlide .slideTop i {       position: absolute;       left: 0.8rem;       top: 0.35rem; }     .sideSlide .slideTop span {       position: absolute;       right: 0.12rem;       top: 0.14rem; }   .sideSlide .slideMiddle {     width: 100%; }     .sideSlide .slideMiddle li {       line-height: 0.4rem;       height: 0.4rem;       padding: 0 0.18rem;       font-weight: bold;       color: #696969; }       .sideSlide .slideMiddle li span {         font-size: 18px;         padding-right: 0.3rem; }       .sideSlide .slideMiddle li span.close {         font-size: 14px;         color: #ff6a6e;         float: right;         padding: 0; }   .sideSlide .slideBottom {     width: 100%;     display: flex;     margin-top: 0.5rem; }     .sideSlide .slideBottom li {       flex-grow: 1;       height: 0.3rem;       line-height: 0.3rem;       text-align: center;       font-size: 14px;       color: #757575;       font-weight: bold; }     .sideSlide .slideBottom li:nth-of-type(1) {       border-right: 1px solid #9d9d9d; } footer {   width: 100%;   height: 0.5rem;   position: fixed;   bottom: 0;   background: #fff; } .footer {   width: 100%;   height: 0.5rem;   position: fixed;   bottom: 0;   background: #fff;   z-index: 50; } .musicPlay {   width: 100%;   padding-left: 0.1rem; } .muicLeft {   width: 50%;   float: left; }   .muicLeft dl {     position: relative;     height: 0.45rem;     padding: 0.02rem 0; }   .muicLeft dt {     float: left;     width: 0.45rem;     height: 0.45rem;     padding-bottom: 0.15rem; }     .muicLeft dt img {       width: 100%;       height: 100%; }   .muicLeft dd:nth-of-type(1) {     float: left;     width: 50%;     padding-left: 0.08rem; }     .muicLeft dd:nth-of-type(1) p {       height: 0.24rem;       line-height: 0.24rem; }     .muicLeft dd:nth-of-type(1) p:nth-of-type(1) {       font-size: 12px;       color: #333333; }     .muicLeft dd:nth-of-type(1) p:nth-of-type(2) {       font-size: 10px;       color: #999999; } .musicRight {   width: 50%;   display: flex;   justify-content: space-around;   text-align: center; }   .musicRight li {     flex: 1;     line-height: 0.48rem; }     .musicRight li span {       font-size: 18px;       color: #ff6a6e; } .blur {   -webkit-filter: blur(30px);   /* Chrome, Opera */   -moz-filter: blur(30px);   -ms-filter: blur(30px);   filter: blur(30px); } .scrollBar {   position: absolute;   width: 0;   height: 0.03rem;   left: 0;   bottom: 0;   background-color: #ff6a6e;   z-index: 19; } body {   box-sizing: border-box; } .header {   z-index: 3;   background-color: #fff; }   .header .page-title {     color: #333333;     font-weight: bold; }   .header .left-btn a, .header .right-btn a {     color: #333333; } .content {   width: 100%; }   .content ul li {     height: 0.5rem;     line-height: 0.5rem;     font-weight: bold;     padding-left: 0.1rem; }     .content ul li .box {       float: right;       width: 1rem;       text-align: center; }       .content ul li .box img {         width: 0.4rem;         height: 0.4rem;         float: left;         margin-top: 0.05rem; }     .content ul li span {       float: right;       padding-right: 0.2rem; }        /*弹框--调用相册*/ .tankuang{ width:2rem; height:auto; overflow: hidden; background:#fff; position: absolute; bottom:2rem; left:0.5rem; display:none; z-index: 3; border-radius: 0.2rem; } .tankuang .select{ width:85%; color:#fff; font-size:18px; background :blueviolet; padding-top:.1rem; padding-left:.3rem; } .upload_pic{      display: block;      width: 100%;      height: 100%;      position: absolute;      left: 0;      top: 0;      opacity: 0;           } .tankuang .inner{ width:85%; height:2rem; background:#fff; } .tankuang .inner .paizhao{ font-size:18rem; color:#000; height:1rem; line-height:1rem; border-bottom:1px solid #D0D0D0; } .tankuang .inner .xiangce{ font-size:18px; color:#000; line-height:1.2rem; position: relative; left:15%; } .tankuang .inner .close{ font-size:16px; color:#fff; background:#A0A0A0; text-align:center; margin:0 .2rem; height:30px; line-height:30px; } /*# sourceMappingURL=mymsg.css.map */

jquery:

<script SRC="../../js/jq.js"></script> <script> //调用相册 var addW=parseInt($(".bendi").css("width")); var addH=parseInt($(".bendi").css("height")); $(".bendi").click(function() { $(".tankuang").css({ "display": "block" }); }) $(".close").click(function() { $(".tankuang").css({ "display": "none" }); }) var input1 = document.getElementById("upload"); if(typeof FileReader === 'undefined') { //使用FileReader 对象,web应用程序可以异步的读取存储在用户计算机上的文件 //result.innerHTML = "抱歉,你的浏览器不支持 FileReader";  input1.setAttribute('disabled', 'disabled'); } else { input1.addEventListener('change', readFile, false); } //调用摄像机 var a = null //调用相册 function readFile() { $(".tankuang").css({ "display": "none" }) var file = this.files[0]; //获取上传文件列表中第一个文件 if(!/image\/\w+/.test(file.type)) { //图片文件的type值为image/png或image/jpg alert("文件必须为图片!"); return false; } // console.log(file); var reader = new FileReader(); //实例一个文件对象 reader.readAsDataURL(file); //把上传的文件转换成url //当文件读取成功便可以调取上传的接口 reader.onload = function(e) { var image = new Image(); image.src = e.target.result; a = image.src; // var max=200; // 绑定load事件处理器,加载完成后执行,避免同步问题 image.onload = function() { console.log(a); $(".bendi").attr({"src":a}); }; } }; </script>

转载请注明原文地址: https://www.6miu.com/read-53082.html

最新回复(0)