•  
  •  
  •  
     
  •  
  •  
关闭
 
2016-08-12 10:02 661人阅读 评论(0) 收藏 举报
 分类:
html学习(1) 

版权声明:本文为博主原创文章,未经博主允许不得转载。

在做项目的时候用到了图片上传,用的是网上找到的一个bootstrap模板,里面的有比较好的图片上传预览功能,但是无法点击放大图片,感觉这样用户体验不怎么好,所以就想自己加一个点击放大图片的功能上去;用到了一个GitHub的开源项目Viewer.js;地址:https://github.com/fengyuanchen/viewer;

但是在开发的时候发现对于原本就已经加载的图片是可以放大的,但是对于自己上传的图片放大不了,猜想了一下可能是因为bootstrap模板是在js里面用代码添加了一个img来显示上传的图片,而Viewer.js无法找到这个img,所以点击之后放大不了。因为刚开始接触这方面,所以源码也没怎么看懂,不知道这个猜想对不对;

其实对于项目而言,上传的图片不能点击放大是没有什么影响的,一般我们不需要放大本地有的图片,但是对于这么一个功能我还是很想去做一下实现一下的,所以就在空闲之余网上各种找方法拼凑一下整合一下做出来;

首先准备工作室要下载jquery和Viewer;

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="author" content="EdieLei" />
  6. <title></title>
  7. <link rel="stylesheet" type="text/css" href="zoom/viewer.css"/>
  8. <link rel="stylesheet" type="text/css" href="zoom/main.css"/>
  9. <body>
  10. <h3>HTML5 图片上传预览</h3>
  11. <div class="docs-pictures clearfix">
  12. <img id="pic" src="" style="width: 200px;height: 200px;"/>
  13. </div>
  14. <input id="img" type="file" accept="image/*" />
  15. <script src="js/jquery-1.11.1.min.js" type="text/javascript" charset="utf-8"></script>
  16. <script src="zoom/viewer.js" type="text/javascript" charset="utf-8"></script>
  17. <script src="zoom/main.js" type="text/javascript" charset="utf-8"></script>
  18. <script type="text/javascript">
  19. $(function() {
  20. $('#img').change(function() {
  21. var file = this.files[0]; //选择上传的文件
  22. var r = new FileReader();
  23. r.readAsDataURL(file); //Base64
  24. $(r).load(function() {
  25. $('#pic').attr('src',this.result);
  26. });
  27. });
  28. });
  29. </script>
  30. </head>
  31. </body>
  32. </html>

上传前:

上传后:

放大后:

这里感觉放大效果不明显,这是因为原图就这么大,可以手动点击底部按钮进行图片的调整,而实际中我们在网页上经常显示的是图片的缩略图,当点击之后显示原图就已经是放大了;如果需要点击之后得到的图比原图要大的话那就要改Viewer.js里面的属性了,

大致改的位置在533行:

  1. image = {
  2. naturalWidth: naturalWidth,
  3. naturalHeight: naturalHeight,
  4. aspectRatio: aspectRatio,
  5. ratio: width / naturalWidth,
  6. width: width*1.5,
  7. height: height*1.5,
  8. left: (viewerWidth - width*1.5) / 2,
  9. top: (viewerHeight - height*1.5) / 2
  10. };
 
0
0
 
 
查看评论
  暂无评论

 
 
发表评论
  • 用 户 名:
  • qq_40222212
  • 评论内容:
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
 
 
 
 
    个人资料
 
 
    • 访问:9687次
    • 积分:230
    • 等级: 
    • 排名:千里之外
    • 原创:14篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章搜索
    文章存档
 
 
 
 
公司简介|招贤纳士|广告服务|联系方式|版权声明|法律顾问|问题报告|合作伙伴|论坛反馈
网站客服杂志客服微博客服webmaster@csdn.net400-660-0108|北京创新乐知信息技术有限公司 版权所有|江苏知之为计算机有限公司|江苏乐知网络技术有限公司
京 ICP 证 09002463 号|Copyright © 1999-2017, CSDN.NET, All Rights Reserved 
 

html图片上传阅览并且点击放大的更多相关文章

  1. vue富文本编辑器vue-quill-editor使用总结(包含图片上传,拖拽,放大和缩小)

    vue-quill-editor是vue很好的富文本编辑器,富文本的功能基本上都支持,样式是黑白色,简洁大方. 第一步下载 vue-quill-editor: npm i vue-quill-edit ...

  2. H5实现多图片预览上传,可点击可拖拽控件介绍

    版权声明:欢迎转载,请注明出处:http://blog.csdn.net/weixin_36380516 在做图片上传时发现一个蛮好用的控件,支持多张图片同时上传,可以点击选择图片,也可以将图片拖拽到 ...

  3. HTML5笔记:跨域通讯、多线程、本地存储和多图片上传技术

    最近做项目在前端我使用了很多新技术,这些技术有bootstrap.angularjs,不过最让我兴奋的还是使用了HTML5的技术,今天我想总结一些HTML5的技术,好记性不如烂笔头,写写文章可以很好的 ...

  4. .NET MVC实现多图片上传并附带参数(ajaxfileupload)

    做网站呢,都免不了要做图片上传. 还记得去年做微信的时候用WebAPI+ajaxfileupload.js做了一个能够附带参数上传的功能,博文地址:.NET WebAPI 实现图片上传(包括附带参数上 ...

  5. .NET WebAPI 实现图片上传(包括附带参数上传图片)

    博主的项目,客户端是APP,考虑到以后也可能会应用到微信端.网站等,图片上传方法就需要兼容多端,并且以目前的设计,不允许非登录用户上传图片,就得在上传时解决附带参数上传图片的问题. 先来看看后台方法( ...

  6. 百度UEditor在线编辑器的配置和图片上传

    前言 最近在项目中使用了百度UEditor富文本编辑器,配置UEditor过程中遇到了几个问题,在此记录一下解决方案和使用方法,避免以后使用UEditor出现类似的错误. 基本配置 一.下载UEdit ...

  7. ASP.Net MVC3 图片上传详解(form.js,bootstrap)

    图片上传的插件很多,但很多时候还是不能切合我们的需求,我这里给大家分享个我用一个form,file实现上传四张图片的小demo.完全是用jquery前后交互,没有用插件. 最终效果图如下: 玩过花田人 ...

  8. Nodejs之MEAN栈开发(四)---- form验证及图片上传

    这一节增加推荐图书的提交和删除功能,来学习node的form提交以及node的图片上传功能.开始之前需要源码同学可以先在git上fork:https://github.com/stoneniqiu/R ...

  9. 分离与继承的思想实现图片上传后的预览功能:ImageUploadView

    本文要介绍的是网页中常见的图片上传后直接在页面生成小图预览的实现思路,考虑到该功能有一定的适用性,于是把相关的逻辑封装成了一个ImageUploadView组件,实际使用效果可查看下一段的git效果图 ...

随机推荐

  1. gradle用户目录本地库移动设置

    gradle被越来越多的程序开发人员使用来构件项目代码,使用gradle依赖的第三方jar包有时候非常占空间,默认这样的用户本地库目录(缓存目录)在系统盘上,我们可以修改用户目录到其它盘上 工具/原料 ...

  2. office2016产品密钥

    office2016专业增强版产品密钥: VL批量授权版:QCKNG-29MKJ-74G4B-X7DT8-JFHBB(亲测有效) office2016专业增强版密钥(Retail零售版),可电话激活 ...

  3. zip 格式解析

    1.格式 https://pkware.cachefly.net/webdocs/APPNOTE/APPNOTE-6.2.0.txt 官方文档 https://blog.csdn.net/hp9103 ...

  4. SpringCloud Hystrix熔断之线程池

    服务熔断 雪崩效应:是一种因服务提供者的不可用导致服务调用者的不可用,并导致服务雪崩的过程. 服务熔断:当服务提供者无法调用时,会通过断路器向调用方直接返回一个错误响应,而不是长时间的等待,避免服务雪 ...

  5. Android使用scrollview截取整个的屏幕并分享微信

    先看看截图效果图 截取scrollview的屏幕 /** * 截取scrollview的屏幕 **/ public static Bitmap getScrollViewBitmap(ScrollVi ...

  6. HTML5代码段

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  7. mkfs.ext4快速格式化大容量硬盘

    安装ext4: yum -y install e4fsprogs 使用如下命令可以快速格式化大容量硬盘: mkfs.ext4 -T largefile /dev/xxx

  8. unity接入谷歌ADMob注意事项

    应用不显示广告,可能是广告sdk 依赖项没有注册 dependencies { implementation fileTree(dir: 'bin', include: ['*.jar']) impl ...

  9. Linux使用yum安装JDK

    安装jdk8 检查系统是否自带open-jdk输入命令: #rpm -qa|grep java #rpm -qa|grep jdk 如果没有输入信息表示没有安装,如果安装可以输入命令:#rpm -qa ...

  10. CentOS开机提示kernel panic - not syncing: Attempted to kill init! 解决方法

    1.重新启动linux 系统,看见如图见面迅速按E键 2.看见如图界面在按E键编辑 3.如图界面使用上下键选择第二个在按E键 4.在最后一行后面添加  enforcing=0 按回车保存退出 5.在此 ...