广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >JavaScript实现更换头像功能
  • 871
分享到

JavaScript实现更换头像功能

2024-04-02 19:04:59 871人浏览 安东尼
摘要

本文实例为大家分享了javascript实现更换头像功能的具体代码,供大家参考,具体内容如下 最主要的是使用Jquery的插件 cropper 1、基本使用步骤 1.在 <he

本文实例为大家分享了javascript实现更换头像功能的具体代码,供大家参考,具体内容如下

最主要的是使用Jquery插件 cropper

1、基本使用步骤

1.在 <head> 中导入 cropper.CSS 样式表:


<link rel="stylesheet" href="/assets/lib/cropper/cropper.css" />

2.在 <body> 的结束标签之前,按顺序导入如下的 js 脚本:


<script src="/assets/lib/jquery.js"></script>
<!-- 导入cropper的js脚本 -->
<script src="/assets/lib/cropper/Cropper.js"></script>
<script src="/assets/lib/cropper/jquery-cropper.js"></script>

3.定义如下的 html 结构:


<!-- 第一行的图片裁剪和预览区域 -->
   <div class="row1">
         <!-- 图片裁剪区域 -->
            <div class="cropper-box">
                    <!-- 这个 img 标签很重要,将来会把它初始化为裁剪区域 -->
                    <img id="image" src="/assets/images/sample.jpg" />
             </div>
             <!-- 图片的预览区域 -->
             <div class="preview-box">
                    <div>
                        <!-- 宽高为 100px 的预览区域 -->
                        <div class="img-preview w100"></div>
                        <p class="size">100 x 100</p>
                    </div>
                    <div>
                        <!-- 宽高为 50px 的预览区域 -->
                        <div class="img-preview w50"></div>
                        <p class="size">50 x 50</p>
                    </div>
                </div>
            </div>
 
 <!-- 第二行的按钮区域 -->
<div class="row2">
         <button type="button" class="layui-btn">上传</button>
         <button type="button" class="layui-btn layui-btn-danger">确定</button>
</div>

4.样式CSS:



 
.layui-card-body {
    width: 500px;
}
 
 

 
.row2 {
    display: flex;
    justify-content: flex-end;
    margin-top: 20px;
}
 
 

 
.cropper-box {
    width: 350px;
    height: 350px;
    background-color: cyan;
    overflow: hidden;
}
 
 

 
.w100 {
    width: 100px;
    height: 100px;
    background-color: gray;
}
 
 

 
.w50 {
    width: 50px;
    height: 50px;
    background-color: gray;
    margin-top: 50px;
}
 
 

 
.size {
    font-size: 12px;
    color: gray;
    text-align: center;
}
 
 

 
.row1 {
    display: flex;
}
 
 

 
.preview-box {
    display: flex;
    flex-direction: column;
    flex: 1;
    align-items: center;
}
 
 

 
.img-preview {
    overflow: hidden;
    border-radius: 50%;
}

5.导入自己的jS文件,并写以下内容,实现基本剪裁效果:


$(function() {
    // 1.1 获取裁剪区域的 DOM 元素
    var $image = $('#image');
    // 1.2 配置选项
    const options = {
        // 纵横比
        aspectRatio: 1,
        // 指定预览区域
        preview: '.img-preview'
    };
 
    // 1.3 创建裁剪区域
    $image.cropper(options);
})

做完以上准备工作,可以实现如下效果

2、更换裁剪的图片

1.添加上传文件的输入框,注意要把输入框隐藏起来:


<!-- 第二行的按钮区域 -->
<div class="row2">
<!-- 通过 accept属性,可以指定,允许用户选择什么类型的文件 -->
<input type="file" id="file" accept="image/png,image/jpeg" />
<button type="button" class="layui-btn" id="btnChooseImage">上传</button>
<button type="button" class="layui-btn layui-btn-danger" id='btnUpload'>确定</button>
</div>

2.为文件选择框绑定change事件


// 为文件选择框绑定 change事件
// 只要选择的文件发生变化就会触发change事件
$('#file').on('change', function(e) {
        // 获取用户选择的文件
        var filelist = e.target.files;
        if (filelist.length === 0) {
            return layer.msg('请选择照片!');
        }
        // 1.拿到用户选择的文件
        var file = e.target.files[0];
        // 2.将文件,转化为路径
        var imgURL = URL.createObjectURL(file);
        // 3.重新初始化剪裁区域
        $image
            .cropper('destroy') // 销毁旧的裁剪区域
            .attr('src', imgURL) // 重新设置图片路径
            .cropper(options) // 重新初始化裁剪区域
})

3.为确定按钮绑定点击事件


// 为确定按钮,绑定点击事件
$('#btnUpload').on('click', function() {
 // 1.要拿到用户剪裁之后的头像
        var dataURL = $image
            .cropper('getCroppedcanvas', { // 创建一个 Canvas 画布
                width: 100,
                height: 100
            })
            .toDataURL('image/png') // 将 Canvas 画布上的内容,转化为 base64 格式的字符串
 
        // 2.调用接口,把头像上传到服务器
        $.ajax({
            method: 'POST',
            url: '/my/update/avatar',
            data: {
                avatar: dataURL
            },
            success: function(res) {
                if (res.status !== 0) {
                    return layer.msg('更换头像不成功!');
                }
                layer.msg('更换头像成功!');
                window.parent.getUserInfo();
            }
 })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: JavaScript实现更换头像功能

本文链接: https://www.lsjlt.com/news/132531.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • JavaScript实现更换头像功能
    本文实例为大家分享了JavaScript实现更换头像功能的具体代码,供大家参考,具体内容如下 最主要的是使用jquery的插件 cropper 1、基本使用步骤 1.在 <he...
    99+
    2022-11-12
  • Android实现用户头像更换操作
    你以为头像更换很容易?或许对于用户来讲,在微信上更换一个头像只是点击头像,选择拍照或相册,裁剪返回而已。但是对于程序员来说,要实现其实也挺吃力的(小火柴花了一个下午整理~_~)...
    99+
    2022-06-06
    Android
  • vue.js+elementUI怎么实现点击左右箭头切换头像功能
    这篇文章主要介绍了vue.js+elementUI怎么实现点击左右箭头切换头像功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1.效果图如...
    99+
    2022-10-19
  • vue实现头像上传功能
    本文实例为大家分享了vue实现头像上传的具体代码,供大家参考,具体内容如下 1.创建项目,使用vue-admin-template框架 2.使用vue命令在终端(开发工具VScod...
    99+
    2022-11-13
  • JS+Canvas实现自定义头像功能
    目录写在最前成果展示Git地址功能说明实现细节相关依赖写在最后写在最前 前两天老大跟我说老虎官网上那个自定义头像的功能是flash实现的,没有安装过的还得手动去“允许&r...
    99+
    2022-11-13
  • Vue如何实现头像处理功能
    这篇文章主要介绍了Vue如何实现头像处理功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue如何实现头像处理功能文章都会有所收获,下面我们一起来看看吧。代码实现<template> &...
    99+
    2023-07-04
  • Android头像上传功能的实现代码(获取头像加剪切)
    因为项目中需要用到头像上传的功能,所以就下个Ddmo先来实现下。demo我是类似仿微信的,在一个GridView中展示所有的图片,其中第一个item可以去照相;获取到图片后再进行剪切。图片的剪切是从网上找的感觉不错就用,暂时也没有测试。获取...
    99+
    2023-05-30
    android 头像 上传
  • python调用摄像头实现拍照功能
    目录 1.介绍 2.系统依赖 (1)OpenCV-Python库 (2)Tkinter库 (3)Pillow库 (4)Time库 3.系统代码 4.效果展示 5.注意事项 1.介绍         这是一个有趣的项目,通过Python程...
    99+
    2023-09-21
    python 开发语言
  • Flutter实现点击头像更新头像的功能,本地相册选取和调用相机两种方式的实现
    文章目录 需求实现的效果如图代码实现代码分析用InkWell包住了我们的头像,这样来监听点击头像的事件用showDialog弹出提示框让用户选择是从相册里选择头像还是使用相机来拍照用image_picker实现从设备的相册或相机中选...
    99+
    2023-08-16
    flutter 头像 image_picker 相册 相机 app Android
  • Java+OpenCV调用摄像头实现拍照功能
    目录环境准备制作主界面整体结构介绍核心代码与知识点讲解JPanel中如何显示摄像头的图像OpenCV调用摄像头使用摄像头拍照完整代码OpenCVUtil.javaImageUtils...
    99+
    2022-11-13
  • Vue调用PC摄像头实现拍照功能
    本文实例为大家分享了Vue调用PC摄像头实现拍照功能的具体代码,供大家参考,具体内容如下 项目需求:可以本地上传头像,也可以选择拍摄头像上传。 组件: 1、Camera组件:实现 打...
    99+
    2022-11-12
  • vue调取电脑摄像头实现拍照功能
    本文实例为大家分享了vue调取电脑摄像头实现拍照功能的具体代码,供大家参考,具体内容如下 实现效果图: 拍照前&拍照后(我电脑摄像头挡住的,所以图片是灰色) 1.点击拍照上...
    99+
    2022-11-12
  • Python实现摄像头实时换脸详解
    目录环境与效果基本原理完整源码环境与效果 python3.9.6 pycharm 2021 库环境: dlib opencv-python 视频图片效果如下: 视频链接 摄像头实时换...
    99+
    2022-11-13
  • Python怎么实现摄像头实时换脸
    这篇文章主要介绍“Python怎么实现摄像头实时换脸”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python怎么实现摄像头实时换脸”文章能帮助大家解决问题。环境python3.9.6pycharm...
    99+
    2023-06-29
  • vue怎么实现更换主题功能
    这篇文章主要讲解了“vue怎么实现更换主题功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue怎么实现更换主题功能”吧!方式一:class切换方式实现:在每个需要更换的页面定义多个cla...
    99+
    2023-07-04
  • 千里共婵娟 | 结合微信公众号用JavaScript完整开发实现换中秋头像的功能
    🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,阿里云社区专家博主,2023年6月csdn上海赛道top4。 🏆数年电商行业从业经验,历任核心研发...
    99+
    2023-09-18
    微信 javascript 开发语言 原力计划
  • vue实现调取手机摄像头和相册功能
    本文实例为大家分享了vue实现调取手机摄像头和相册的具体代码,供大家参考,具体内容如下 自己总结的手机端拍照和相册原生的方法 HTML代码 <div> //要显示的图...
    99+
    2022-11-12
  • Vue vant-ui使用van-uploader实现头像上传功能
    效果图: 项目中是使用有赞vant-ui框架实现的头像上传替换功能 代码布局结构:  <van-row class="sendInfo"> ...
    99+
    2022-11-13
  • 怎么使用PHP实现用户头像上传功能
    这篇文章将为大家详细讲解有关怎么使用PHP实现用户头像上传功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。补充:什么是switch语句,以及它适用于哪些地方?简单的说switch语句也是属于判断语句,i...
    99+
    2023-06-15
  • 如何使用HTML5实现超酷摄像头拍照功能
    这篇文章给大家分享的是有关如何使用HTML5实现超酷摄像头拍照功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。WebRTC可能是明年最受关注的HTML5标准了,Mozilla为...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作