html图片上传阅览并且点击放大


版权声明:本文为博主原创文章,未经博主允许不得转载。
在做项目的时候用到了图片上传,用的是网上找到的一个bootstrap模板,里面的有比较好的图片上传预览功能,但是无法点击放大图片,感觉这样用户体验不怎么好,所以就想自己加一个点击放大图片的功能上去;用到了一个GitHub的开源项目Viewer.js;地址:https://github.com/fengyuanchen/viewer;
但是在开发的时候发现对于原本就已经加载的图片是可以放大的,但是对于自己上传的图片放大不了,猜想了一下可能是因为bootstrap模板是在js里面用代码添加了一个img来显示上传的图片,而Viewer.js无法找到这个img,所以点击之后放大不了。因为刚开始接触这方面,所以源码也没怎么看懂,不知道这个猜想对不对;
其实对于项目而言,上传的图片不能点击放大是没有什么影响的,一般我们不需要放大本地有的图片,但是对于这么一个功能我还是很想去做一下实现一下的,所以就在空闲之余网上各种找方法拼凑一下整合一下做出来;
首先准备工作室要下载jquery和Viewer;
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="UTF-8">
- <meta name="author" content="EdieLei" />
- <title></title>
- <link rel="stylesheet" type="text/css" href="zoom/viewer.css"/>
- <link rel="stylesheet" type="text/css" href="zoom/main.css"/>
- <body>
- <h3>HTML5 图片上传预览</h3>
- <div class="docs-pictures clearfix">
- <img id="pic" src="" style="width: 200px;height: 200px;"/>
- </div>
- <input id="img" type="file" accept="image/*" />
- <script src="js/jquery-1.11.1.min.js" type="text/javascript" charset="utf-8"></script>
- <script src="zoom/viewer.js" type="text/javascript" charset="utf-8"></script>
- <script src="zoom/main.js" type="text/javascript" charset="utf-8"></script>
- <script type="text/javascript">
- $(function() {
- $('#img').change(function() {
- var file = this.files[0]; //选择上传的文件
- var r = new FileReader();
- r.readAsDataURL(file); //Base64
- $(r).load(function() {
- $('#pic').attr('src',this.result);
- });
- });
- });
- </script>
- </head>
- </body>
- </html>
上传前:
上传后:
放大后:
这里感觉放大效果不明显,这是因为原图就这么大,可以手动点击底部按钮进行图片的调整,而实际中我们在网页上经常显示的是图片的缩略图,当点击之后显示原图就已经是放大了;如果需要点击之后得到的图比原图要大的话那就要改Viewer.js里面的属性了,
大致改的位置在533行:
- image = {
- naturalWidth: naturalWidth,
- naturalHeight: naturalHeight,
- aspectRatio: aspectRatio,
- ratio: width / naturalWidth,
- width: width*1.5,
- height: height*1.5,
- left: (viewerWidth - width*1.5) / 2,
- top: (viewerHeight - height*1.5) / 2
- };
- 顶
- 0
- 踩
- 0
- 用 户 名:
- qq_40222212
- 评论内容:
- 文章搜索
- 文章分类
- android组件属性(0)
- android验证功能(0)
- boostrap插件(1)
- android笔记(7)
- html学习(2)
- SSM框架学习笔记(1)
- android studio(0)
- android studio笔记(2)
- android SuperExample开发(0)
- 阅读排行
- bootstrap-table.js如何根据单元格数据不同显示不同的字体的颜色(6962)
- android当activity加载完成后自动弹出popWindow(896)
- html图片上传阅览并且点击放大(661)
- struts2 2.5.2web.xml和struts.xmll配置(237)
- android开发设置应用开机自启动(2)——并使应用实时保持在前台(138)
- android使用TextView实现文字的跑马灯效果(122)
- android开发设置应用开机自启动(108)
- RecyclerView中绘制不相同的分割线(105)
- HTML学习笔记(88)
- 自定义图片手势缩放ImageView笔记(86)
- 评论排行
html图片上传阅览并且点击放大的更多相关文章
- vue富文本编辑器vue-quill-editor使用总结(包含图片上传,拖拽,放大和缩小)
vue-quill-editor是vue很好的富文本编辑器,富文本的功能基本上都支持,样式是黑白色,简洁大方. 第一步下载 vue-quill-editor: npm i vue-quill-edit ...
- H5实现多图片预览上传,可点击可拖拽控件介绍
版权声明:欢迎转载,请注明出处:http://blog.csdn.net/weixin_36380516 在做图片上传时发现一个蛮好用的控件,支持多张图片同时上传,可以点击选择图片,也可以将图片拖拽到 ...
- HTML5笔记:跨域通讯、多线程、本地存储和多图片上传技术
最近做项目在前端我使用了很多新技术,这些技术有bootstrap.angularjs,不过最让我兴奋的还是使用了HTML5的技术,今天我想总结一些HTML5的技术,好记性不如烂笔头,写写文章可以很好的 ...
- .NET MVC实现多图片上传并附带参数(ajaxfileupload)
做网站呢,都免不了要做图片上传. 还记得去年做微信的时候用WebAPI+ajaxfileupload.js做了一个能够附带参数上传的功能,博文地址:.NET WebAPI 实现图片上传(包括附带参数上 ...
- .NET WebAPI 实现图片上传(包括附带参数上传图片)
博主的项目,客户端是APP,考虑到以后也可能会应用到微信端.网站等,图片上传方法就需要兼容多端,并且以目前的设计,不允许非登录用户上传图片,就得在上传时解决附带参数上传图片的问题. 先来看看后台方法( ...
- 百度UEditor在线编辑器的配置和图片上传
前言 最近在项目中使用了百度UEditor富文本编辑器,配置UEditor过程中遇到了几个问题,在此记录一下解决方案和使用方法,避免以后使用UEditor出现类似的错误. 基本配置 一.下载UEdit ...
- ASP.Net MVC3 图片上传详解(form.js,bootstrap)
图片上传的插件很多,但很多时候还是不能切合我们的需求,我这里给大家分享个我用一个form,file实现上传四张图片的小demo.完全是用jquery前后交互,没有用插件. 最终效果图如下: 玩过花田人 ...
- Nodejs之MEAN栈开发(四)---- form验证及图片上传
这一节增加推荐图书的提交和删除功能,来学习node的form提交以及node的图片上传功能.开始之前需要源码同学可以先在git上fork:https://github.com/stoneniqiu/R ...
- 分离与继承的思想实现图片上传后的预览功能:ImageUploadView
本文要介绍的是网页中常见的图片上传后直接在页面生成小图预览的实现思路,考虑到该功能有一定的适用性,于是把相关的逻辑封装成了一个ImageUploadView组件,实际使用效果可查看下一段的git效果图 ...
随机推荐
- tesseract的编译安装
需要安装: <span style="font-family:'Microsoft YaHei';font-size:14px;">apt-get install au ...
- 2016word多级列表 一级标题居中后偏左
一.如下图所示,定义好多级列表之后设置标题,但是发现标题居中后偏左. 二.选择多级列表,设置居左对齐
- pytest学习--快速入门
一.pytest简介 Pytest是python的一种单元测试框架. pytest的特点: 入门简单,文档丰富 支持单元测试,功能测试 支持参数化,重复执行,部分执行,测试跳过 兼容其他测试框架(no ...
- python 练习题(1-15)
1.给定一个整数数组和一个目标值,找出数组中和为目标值的两个数. 2.生成双色球 3.逻辑运算(运算符优先级) 4.输入一个整数,判断这个数是几位数 5.用while循环计算 1-2+3-4...-9 ...
- IDEA 对比eclipse环境调节
小子刚刚接触Intellij IDEA,以前用的都是eclipse.鉴于ieda的火热,开始学习之旅.本文会随时更新,记载idea中的一些调节方法,尽量在环境的配置上跟eclipse接近些. 在此感谢 ...
- forEach() 和 map() 遍历
1.forEach() 没有返回值. arr[].forEach(function(value,index,array){ //do something }) 参数:value数组中的当前项, i ...
- 19-07 【docker】随笔笔记
小tips: 1,在nginx的镜像中,并未包含ping工具: 2,在busybox的镜像中,是包含ping工具和telnet工具的,所以如果想测试互通性,可以利用busybox来检查: 实验1:利用 ...
- CentOS7+CDH5.14.0安装CDH错误排查:HBase服务出现 该运行状况测试不良,因为 Service Monitor 未找到活动 Master
错误:HBase服务出现 该运行状况测试不良,因为 Service Monitor 未找到活动 Master 如果重启服务之后无法排除该问题,请执行如下操作(CM换成自己的版本号): rm -f /o ...
- UIButton设置UIControlContentHorizontalAlignment调整文字对齐方式
UIButton 继承自UIControl,所以可以对UIControlContentHorizontalAlignment进行设置 btn.setImage(UIImage.init(named: ...
- xp密钥-资源分享
xp-密钥:QC986-27D34-6M3TY-JJXP9-TBGMD ftp-资源地址: ftp://10.10.31.2/?tdsourcetag=s_pctim_aiomsg