利用微信的weui框架上传、预览和删除图片

jQuery WeUI 是专为微信公众账号开发而设计的一个框架,jQuery WeUI的官网:http://jqweui.com/

需求:需要在微信公众号网页添加上传图片功能

技术选型:实现上传图片功能可选百度的WebUploader、饿了么的Element和微信的jQuery WeUI,WebUploader的缺点是自定义UI困难,自定义上传过程困难,Element的缺点是Web 控件,与手机端样式不符,而jQuery WeUI专门为微信公众号做的框架,基本不会出现问题,使用起来比较简单。最后当然就选微信的jQuery WeUI

HTML部分:

[html] view plaincopy
  1. <!--图片上传-->  
  2.         <div class="weui-gallery" id="gallery">  
  3.             <span class="weui-gallery__img" id="galleryImg"></span>  
  4.             <div class="weui-gallery__opr">  
  5.                 <a href="javascript:" class="weui-gallery__del">  
  6.                     <i class="weui-icon-delete weui-icon_gallery-delete"></i>  
  7.                 </a>  
  8.             </div>  
  9.         </div>  
  10.         <div class="weui-cells weui-cells_form">  
  11.             <div class="weui-cell">  
  12.                 <div class="weui-cell__bd">  
  13.                     <div class="weui-uploader">  
  14.                         <div class="weui-uploader__hd">  
  15.                             <p class="weui-uploader__title">图片上传</p>  
  16.                         </div>  
  17.                         <div class="weui-uploader__bd">  
  18.                             <ul class="weui-uploader__files" id="uploaderFiles">  
  19.                                   
  20.                             </ul>  
  21.                             <div class="weui-uploader__input-box">  
  22.                                 <input id="uploaderInput" class="weui-uploader__input zjxfjs_file" type="file" accept="image/*" multiple="">  
  23.                             </div>  
  24.                         </div>  
  25.                     </div>  
  26.                 </div>  
  27.             </div>  
  28.         </div>  

JS部分:

[html] view plaincopy
  1. <script type="text/javascript" src="../js/mui.min.js"></script>  
  2. <script type="text/javascript" src="../js/jquery.min.js"></script>  
  3. <script src="../js/jquery-weui.min.js"></script>  
  4. <script>  
  5.     mui.init();  
  6.     $(function() {  
  7.         var tmpl = '<li class="weui-uploader__file" style="background-image:url(#url#)"></li>',  
  8.             $gallery = $("#gallery"),  
  9.             $galleryImg = $("#galleryImg"),  
  10.             $uploaderInput = $("#uploaderInput"),  
  11.             $uploaderFiles = $("#uploaderFiles");  
  12.   
  13.             $uploaderInput.on("change", function(e) {  
  14.                 var src, url = window.URL || window.webkitURL || window.mozURL,  
  15.                 files = e.target.files;  
  16.                 for(var i = 0len = files.length; i < len; ++i) {  
  17.                     var file = files[i];  
  18.   
  19.                     if(url) {  
  20.                         src = url.createObjectURL(file);  
  21.                     } else {  
  22.                         src = e.target.result;  
  23.                     }  
  24.   
  25.                     $uploaderFiles.append($(tmpl.replace('#url#', src)));  
  26.                 }  
  27.             });  
  28.         var index; //第几张图片  
  29.         $uploaderFiles.on("click", "li", function() {  
  30.             index = $(this).index();  
  31.             $galleryImg.attr("style", this.getAttribute("style"));  
  32.             $gallery.fadeIn(100);  
  33.         });  
  34.         $gallery.on("click", function() {  
  35.             $gallery.fadeOut(100);  
  36.         });  
  37.         //删除图片  
  38.         $(".weui-gallery__del").click(function() {  
  39.             $uploaderFiles.find("li").eq(index).remove();  
  40.         });  
  41.     });  
  42. </script>  

CSS和JS文件可以去官网下载

[html] view plaincopy
  1. <link rel="stylesheet" href="../css/mui.min.css">  
  2. <link rel="stylesheet" href="../css/weui.min.css"/>  
  3. <link rel="stylesheet" href="../css/jquery-weui.min.css"/>  
[html] view plaincopy
  1.  <script type="text/javascript" src="../js/mui.min.js"></script>  
  2.  <script type="text/javascript" src="../js/jquery.min.js"></script>  
  3.  <script src="../js/jquery-weui.min.js"></script>  

效果图:

点击加号,上传图片

点击图片,可以进行预览、删除



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/387140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】Java Socket编程基础及深入讲解

原文&#xff1a;https://www.cnblogs.com/yiwangzhibujian/p/7107785.html#q2.3.3 Socket是Java网络编程的基础&#xff0c;了解还是有好处的&#xff0c; 这篇文章主要讲解Socket的基础编程。Socket用在哪呢&#xff0c;主要用在进程间&#xff0c;网络间通信。本篇比较长&am…

使用 vue-i18n 切换中英文

使用 vue-i18n 切换中英文vue-i18n 仓库地址&#xff1a;https://github.com/kazupon/vue-i18n兼容性&#xff1a;支持 Vue.js 2.x 以上版本安装方法&#xff1a;&#xff08;此处只演示 npm&#xff09;npm install vue-i18n使用方法&#xff1a;1、在 main.js 中引入 vue-i18…

ZooKeeper数据模型

Zookeeper的数据模型 层次化的目录结构&#xff0c;命名符合常规文件系统规范&#xff08;Linux&#xff09; 每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识 节点Znode可以包含数据和子节点(即子目录)&#xff0c;但是EPHEMERAL类型的节点不能有子节点 Znod…

堆叠条形图

堆叠条形图 import pandas as pd import numpy as np import matplotlib.pyplot as plt import matplotlib as mpl import matplotlib.dates as mdates#解决能显示中文 mpl.rcParams[font.sans-serif][SimHei] #指定默认字体 SimHei为黑体 mpl.rcParams[axes.unicode_minus]Fal…

spring boot 服务器常用

ps aux|grep tgcwll /opt/nginx/html sudo cp -r /tmp/tgcw/dist/* /opt/nginx/html/design sudo cp -r /tmp/tgcw/dist/* /opt/nginx/html springboot 启动nohup java -jar tgcw-service-usermanagement-0.0.1-SNAPSHOT.jar --spring.profiles.activedemo > /dev/null 2&g…

PHP数组 转 对象/对象 转 数组

/*** 数组 转 对象** param array $arr 数组* return object*/ function array_to_object($arr) {if (gettype($arr) ! array) {return;}foreach ($arr as $k > $v) {if (gettype($v) array || getType($v) object) {$arr[$k] (object)array_to_object($v);}}return (obj…

ZooKeeper編程01--RMI服務的多服務器管理

服務器端與客戶端都要用到&#xff1a; public interface ZkInfo {String ZK_CONNECTION_STRING "192.168.1.201:2181,192.168.1.202:2181,192.168.1.203:2181";int ZK_SESSION_TIMEOUT 5000;String ZK_REGISTRY_PATH "/registry";String ZK_PROVIDER_…

org.activiti.engine.ActivitiOptimisticLockingException updated by another transaction concurrently

org.activiti.engine.ActivitiOptimisticLockingException: Task[id5905010, name审核(市场部)] was updated by another transaction concurrentlyat org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:872)at org.activiti.engine.impl.db.DbSqlSess…

DataTable不能通过已删除的行访问该行的信息解决方法

使用dt.Rows[0]["name", DataRowVersion.Original]可以获取转载于:https://www.cnblogs.com/heyiping/p/10616640.html

ZooKeeper編程02--多線程的分佈式鎖

面向過程版&#xff1a; package distributedLockProcess;import java.util.Collections; import java.util.List; import java.util.concurrent.CountDownLatch;import org.apache.zookeeper.CreateMode; import org.apache.zookeeper.KeeperException; import org.apache.zoo…

01 Python变量和数据类型

Python变量和数据类型 1 数据类型 计算机&#xff0c;顾名思义就是可以做数学计算的机器&#xff0c;因此&#xff0c;计算机程序理所当然也可以处理各种数值。 但是&#xff0c;计算机能处理的远不止数值&#xff0c;还可以处理文本、图形、音频、视频、网页等各种各样的数…

初识Python-1

1&#xff0c;计算机基础。 2&#xff0c;python历史。 宏观上&#xff1a;python2 与 python3 区别&#xff1a; python2 源码不标准&#xff0c;混乱&#xff0c;重复代码太多&#xff0c; python3 统一 标准&#xff0c;去除重复代码。 3&#xff0c;python的环境。 编译型&…

02 List、Tuple、Dict、Set

List 线性表 创建List&#xff1a; >>> classmates [Michael, Bob, Tracy] >>> L [Michael, 100, True] #可以在list中包含各种类型的数据 >>> empty_list [] #空List 按索引访问List&#xff1a; >>> print L[0] #索引从0开始…

Jenkins的一些代码

pipeline {agent anyenvironment { def ITEMNAME "erp"def DESTPATH "/home/ops/testpipe"def codePATH"/var/lib/jenkins/workspace/test_pipeline"}stages { stage(代码拉取){steps {echo "checkout from ${ITEMNAME}"git url:…

利用layui前端框架实现对不同文件夹的多文件上传

利用layui前端框架实现对不同文件夹的多文件上传 问题场景&#xff1a; 普通的input标签实现多文件上传时&#xff0c;只能对同一个文件夹下的多个文件进行上传&#xff0c;如果要同时上传两个或多个文件夹下的文件&#xff0c;是无法实现的。这篇文章就是利用layui中的插件&am…

ps、grep和kill联合使用杀掉进程

ps、grep和kill联合使用杀掉进程例如要杀掉hello这个进程&#xff0c;使用下面这个命令就能直接实现。ps -ef |grep hello |awk {print $2}|xargs kill -9这里是输出ps -ef |grep hello 结果的第二列的内容然后通过xargs传递给kill -9,其实第二列内容就是hello的进程号&#xf…

03 控制語句

if语句 if age > 18 print your age is, age else print teenager Python代码的缩进规则&#xff1a;具有相同缩进的代码被视为代码块。 if age > 18 print adult elif age > 6 print teenager elif age > 3 print kid else print baby for循环 L [Adam, L…

yum 来安装 nodejs

要通过 yum 来安装 nodejs 和 npm 需要先给 yum 添加 epel 源&#xff0c;添加方法在 centos 添加epel和remi源 中##添加 epel 源 64位: rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm32位: rpm -ivh http://download.fedoraproj…

yzh的神仙题

U66905 zz题 考虑一个点权值被计算了多少次。。。不知 所以对未来承诺&#xff0c;方便直接算上总数&#xff01; 然后其实是给边定向&#xff0c;即先删除fa和son的哪一个 f[x][j]&#xff0c;会计算j次 无法转移 f[x][j][k]&#xff0c;其中会从子树计算k次。 当边从儿子指向…

04 函數

內置函數 Python內置了很多有用的函數&#xff0c;可以直接調用。 要調用一個函數&#xff0c;需要知道函數的名稱和參數。 可以直接從Python的官方網站查看文檔&#xff1a;http://docs.python.org/2/library >>> abs(-20) >>> help(abs) >>>…