前端JS特效第50集:zyupload图片上传

zyupload图片上传,先来看看效果:

部分核心的代码如下(全部代码在文章末尾):

var operimg_id;
var zoom_rate=100;
var zoom_timeout;
function rotateimg(){var smallImg=$("#"+operimg_id);var num=smallImg.attr('curr_rotate');if(num==null){num=0;}num=parseInt(num);num +=1;smallImg.attr('curr_rotate',num);$("#show_img").rotate({angle:90*num});smallImg.rotate({angle:90*num});
}function createOpenBox(){if($('#operimg_box').length==0){var html = '    <div class="operimg_box" id="operimg_box">';html += '       <img id="show_img" src="" onclick="get_imgsize()" />';html += '       <span class="set_img percent_img" id="zoom_show" >percent</span>';html += '       <span class="set_img zoomin" onclick="zoomIn()"></span>';html += '       <span class="set_img zoomout" onclick="zoomOut()"></span>';html += '       <span class="set_img ratateimg" id="btn_rotateimg" onclick="rotateimg()"></span>';html += '       <span class="set_img close_img" id="delimg"></span>';html += '       <span class="set_img arrowleft" onclick="prevImg()"></span>';html += '       <span class="set_img arrowright" onclick="nextImg()"></span>';html += '       <span class="set_img operarea_box"></span>';html += '   </div><div class="clearboth"></div><div id="mask_bg">dfdfdfdfdfd是打发第三方</div>';$('body').append(html);         }
}
function get_imgsize(){var img_size=$("#show_img").width();//alert(img_size);
}function setNewIndex(isNext) {var imgs = $('#preview').find('img[class="upload_image"]');var imgCount = imgs.length;var currIndex=0;for(var i=0;i<imgCount;i++){if($(imgs[i]).attr('id')==operimg_id){currIndex = i;break;}}if (isNext) {currIndex += 1;if (currIndex >= imgCount) {currIndex = 0;}} else {currIndex -= 1;if (currIndex < 0) {currIndex  =imgCount-1;}        }return $(imgs[currIndex]).attr('id').replace('uploadImage_','');
}
function nextImg() {var index = setNewIndex(true);setimgbox(index);
}
function prevImg() {var index = setNewIndex(false);setimgbox(index);
}
function zoomIn() {zoom_rate += 10;doZoom(zoom_rate);setoperimgbox();
}
function zoomOut() {zoom_rate -= 10;doZoom(zoom_rate);setoperimgbox();
}function doZoom(zoom_rate){//$("#show_img").css('width', zoom_rate + '%').css('height', zoom_rate + '%');	var naturalWidth= $("#show_img")[0].naturalWidth;$("#show_img").css('width', naturalWidth*zoom_rate*0.01+'px');clearTimeout(zoom_timeout);zoom_rate=parseInt(zoom_rate);$("#zoom_show").show();$("#zoom_show").html(zoom_rate+'%');zoom_timeout=setTimeout(function (){$("#zoom_show").hide('fast');},1000);
}
function setoperimgbox(){var obImage=$("#operimg_box");var ob_width = obImage.width();var ob_height = obImage.height();//alert(ob_width +":"+ob_height);var ob_left = (window.innerWidth-ob_width)/2;var ob_top = (window.innerHeight-ob_height)/2;console.log(ob_left+"   "+ob_top+" "+ ob_width+" "+ob_height+" "+window.innerWidth+" "+window.innerHeight);$("#operimg_box").css("left",ob_left).css("top",ob_top);$("#mask_bg").show();$("#operimg_box").show();
}/*删除*/
function delimg(index){//var imgboxid=$(x).parent().parent().attr("id");var smallimgbox='uploadList_'+index;ZYFILE.funDeleteFile(parseInt(index), true)$("#"+smallimgbox).remove();}function setimgbox(index){createOpenBox();zoom_rate = 100;operimg_id='uploadImage_'+index;var smallImg=$("#"+operimg_id);// alert(smallImg[0].naturalWidth);var naturalWidth=smallImg[0].naturalWidth;var naturalHeight=smallImg[0].naturalHeight;zoom_rate=600/Math.max(naturalWidth,naturalHeight)*100;$("#show_img").attr("src",smallImg.attr('src'));$("#mask_bg").show();$("#operimg_box").show();//$("#show_img").css('width', zoom_rate + '%').css('height', zoom_rate + '%');$("#show_img").css('width', naturalWidth*zoom_rate*0.01+'px');var num=$("#"+operimg_id).attr('curr_rotate');$("#show_img").rotate({angle:90*num});$("#delimg").click(function(){$("#show_img").attr("src","");$("#operimg_box").hide();$("#mask_bg").hide();});setoperimgbox();
}
/**/
//引用初始化JS
$(function(){// 初始化插件$("#demo").zyUpload({width            :   "650px",                 // 宽度height           :   "400px",                 // 宽度itemWidth        :   "120px",                 // 文件项的宽度itemHeight       :   "100px",                 // 文件项的高度url              :   "/upload/UploadAction",  // 上传文件的路径multiple         :   true,                    // 是否可以多个文件上传dragDrop         :   true,                    // 是否可以拖动上传文件del              :   true,                    // 是否可以删除文件finishDel        :   false,                   // 是否在上传文件完成后删除预览/* 外部获得的回调接口 */onSelect: function(files, allFiles){                    // 选择文件的回调方法console.info("当前选择了以下文件:");console.info(files);console.info("之前没上传的文件:");console.info(allFiles);},onDelete: function(file, surplusFiles){                     // 删除一个文件的回调方法console.info("当前删除了此文件:");console.info(file);console.info("当前剩余的文件:");console.info(surplusFiles);},onSuccess: function(file){                    // 文件上传成功的回调方法console.info("此文件上传成功:");console.info(file);},onFailure: function(file){                    // 文件上传失败的回调方法console.info("此文件上传失败:");console.info(file);},onComplete: function(responseInfo){           // 上传完成的回调方法console.info("文件上传完成");console.info(responseInfo);}});
});

全部代码:zyupload图片上传

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

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

相关文章

ESP8266用AT指令实现连接MQTT

1准备工作 硬件&#xff08;ESP8266&#xff09;连接电脑 硬件已经烧入了MQTT透传固件 2实现连接 2-1&#xff08;进入AT模式&#xff09; 打开串口助手发送如下指令 AT 2-2&#xff08;复位&#xff09; ATRST 2-3&#xff08;开启DHCP&#xff0c;自动获取IP&#x…

免费视频批量横版转竖版

简介 视频处理器 v1.3 是一款由是貔貅呀开发的视频编辑和处理工具&#xff0c;提供高效便捷的视频批量横转竖&#xff0c;主要功能&#xff1a; 导入与删除文件&#xff1a;轻松导入多个视频文件&#xff0c;删除不必要的文件。暂停与继续处理&#xff1a;随时暂停和继续处理。…

Python学习笔记43:游戏篇之外星人入侵(四)

前言 在前面的文章中&#xff0c;我们已经对项目进行了简单的分析&#xff0c;并且已经编写好了基础的代码&#xff0c;接下来的工作就是进一步的分析游戏的业务功能&#xff0c;在基础代码之上&#xff0c;进行填充。 背景颜色 我们简单的创建窗口以后&#xff0c;除了命名…

设置使用小米google play和APK的下载使用

我们常常遇到从google play无法下载apk文件&#xff0c;被迫从APKcombo和APKpure两个网站下载安装文件&#xff0c;可是安装文件在手机google play服务框架未开启时即使安装好了&#xff0c;也没法用。也需要把google play服务框架安装好&#xff0c;下面分别介绍&#xff1a; …

Mac 中安装内网穿透工具ngrok

ngrok 是什么&#xff1f; Ngrok 是一个网络工具&#xff0c;主要用于在网络中创建从公共互联网到私有或本地网络中运行的web服务的安全隧道。它充当了一个反向代理&#xff0c;允许外部用户通过公共可访问的URL访问位于防火墙或私有网络中的web应用程序或服务。Ngrok 特别适用…

Three.js 官方文档学习笔记

Address&#xff1a;Three.js中文网 (webgl3d.cn) Author&#xff1a;方越 50041588 Date&#xff1a;2024-07-19 第一个3D案例—创建3D场景 创建3D场景对象Scene&#xff1a; const scene new THREE.Scene(); 创建一个长方体几何对象Geometry&#xff1a; const geomet…

实验八: 彩色图像处理

目录 一、实验目的 二、实验原理 1. 常见彩色图像格式 2. 伪彩色图像 3. 彩色图像滤波 三、实验内容 四、源程序和结果 (1) 主程序(matlab (2) 函数FalseRgbTransf (3) 函数hsi2rgb (4) 函数rgb2hsi (5) 函数GrayscaleFilter (6) 函数RgbFilter 五、结果分析 1. …

某数据泄露防护(DLP)系统NetSecConfigAjax接口SQL注入漏洞复现 [附POC]

文章目录 某数据泄露防护(DLP)系统NetSecConfigAjax接口SQL注入漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现某数据泄露防护(DLP)系统NetSecConfigAjax接口SQL注入漏洞复现 [附POC] 0x01 前言 免责声明:请…

【Emacs有什么优点,用Emacs写程序真的比IDE更方便吗?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

springcloud接入skywalking作为应用监控

下载安装包 需要下载SkyWalking APM 和 Java Agent 链接: skywalking 安装 下载JDK17&#xff08;可不配置环境变量&#xff09; 目前skywalking 9.0及以上版本基本都不支持JDK8&#xff0c;需要JDK11-21&#xff0c;具体版本要求在官网查看。 我这里使用的是skywalking9.…

Unity UGUI 之 图集

本文仅作学习笔记与交流&#xff0c;不作任何商业用途 本文包括但不限于unity官方手册&#xff0c;唐老狮&#xff0c;麦扣教程知识&#xff0c;引用会标记&#xff0c;如有不足还请斧正 本文在发布时间选用unity 2022.3.8稳定版本&#xff0c;请注意分别 1.什么是图集 精灵图…

google 浏览器插件开发简单学习案例:TodoList;打包成crx离线包

参考&#xff1a; google插件支持&#xff1a; https://blog.csdn.net/weixin_42357472/article/details/140412993 这里是把前面做的TodoList做成google插件&#xff0c;具体网页可以参考下面链接 TodoList网页&#xff1a; https://blog.csdn.net/weixin_42357472/article/de…

phpstorm配置xdebug3

查看php路径相关信息 php --ini安装xdebug https://www.jetbrains.com/help/phpstorm/2024.1/configuring-xdebug.html?php.debugging.xdebug.configure php.ini 配置 在最后添加&#xff0c;以下是我的配置 [xdebug] zend_extension/opt/homebrew/Cellar/php8.1/8.1.29/p…

React 学习——行内样式、外部样式、动态样式

三种样式的写法 import "./index.css"; //同级目录下的样式文件 function App() {const styleCol {color: green,fontSize: 40px}// 动态样式const isBlock false;return (<div className"App">{/* 行内样式 */}<span style{{color:red,fontSiz…

工程视角:数据结构驱动的应用开发--字典(dictionary),列表(list)与实体

这里写目录标题 业务业务场景流程分析 实现数据访问层&#xff08;DAL&#xff09;业务逻辑层&#xff08;BLL&#xff09;用户界面层&#xff08;UI&#xff09;工具类 设计思路为什么抽出工具类关于U层使用字典的好处工程视角 业务 业务场景 在一个金融应用系统中&#xff0c…

.netcore TSC打印机打印

此文章给出两种打印案例&#xff0c; 第一种是单列打印&#xff0c;第二种是双列打印 需要注意打印机名称的设置&#xff0c;程序中使用的打印机名称为999&#xff0c;电脑中安装打印机时名称也要为999。 以下是我在使用过程中总结的一些问题&#xff1a; 一 TSC打印机使用使…

【Node.js基础02】fs、path模块

目录 一&#xff1a;fs模块-读写文件 1 加载fs模块对象 2 读制定文件内容文件 3 向文件中写入内容 二&#xff1a;path模块-路径处理 1 问题引入 2 __dirname内置变量 使用方法 一&#xff1a;fs模块-读写文件 fs模块封装了与本机文件系统交互方法和属性 1 加载fs模块…

弹性布局 flex layout HTML CSS

文章目录 效果图参考文档代码 效果图 其实弹性布局的好处是&#xff1a;当网页大小变化&#xff08;如窗口resize&#xff09;时&#xff0c;处于弹性容器(flex container)中的弹性元素(flex item) 之间的距离也会变化。 需要特别注意的是&#xff1a; 弹性布局的主要CSS如下。…

开源邮箱套件介绍系列2:Roundcube webmail

1. 项目介绍 项目网站&#xff1a;Roundcube – Free and Open Source Webmail Software Roundcube 项目是一个免费的开源网络邮件解决方案&#xff0c;具有类似桌面的用户界面&#xff08;Webmail&#xff09;&#xff0c;易于安装/配置&#xff0c;并且可以在标准的LAMPP服…

PostgreSQL 中如何处理数据的唯一性约束?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01;&#x1f4da;领书&#xff1a;PostgreSQL 入门到精通.pdf 文章目录 PostgreSQL 中如何处理数据的唯一性约束&#xff1f;一、什么是唯一性约束二、为什么要设置唯一性约束…