HTML5图片预览 放大

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>图片预览</title>

<style>

* {

margin: 0;

padding: 0;

}

.picture {

margin: 20px;

position: relative;

}

#show {

position: absolute;

top: 0;

left: 0;

width: 98px;

height: 98px;

border: 1px solid #e8e8e8;

background: #fff;

opacity: .5;

}

.wrap {

width: 198px;

height: 198px;

border: 1PX solid #e8e8e8;

margin-bottom: 10px;

}

.wrap img {

width: 100%;

height: 100%;

}

.subWrap {

width: 298px;

height: 298px;

overflow: hidden;

position: relative;

border: 1px solid #e8e8e8;

}

.sub {

position: absolute;

top: 0;

left: 0;

width: 598px;

height: 598px;

}

.sub img {

width: 100%;

height: 100%;

}

</style>

<script>

window.onload = function() {

function p(arg) {

console.log(arg);

}

let file = document.querySelector(‘#file‘),

picture = document.querySelector(‘.picture‘),

wrap = document.querySelector(‘.wrap‘),

sub = document.querySelector(‘.sub‘),

show = document.getElementById(‘show‘),

showTop = 0,

showLeft = 0,

moveTop = 0,

moveLeft = 0;

function move() {

show.onmousemove = function(ev) {

let e = ev || window.event;

e.stopPropagation();

e.preventDefault();

moveTop = e.clientY - picture.offsetTop - wrap.offsetTop - show.offsetHeight / 2;

moveLeft = e.clientX - picture.offsetLeft - wrap.offsetLeft - show.offsetWidth / 2;

p(moveLeft);

if (moveTop < 0) {

show.style.top = ‘0px‘;

console.log(‘上‘);

} else if (moveLeft < 0) {

show.style.left = ‘0px‘;

console.log(‘左‘);

} else if (moveTop > 100) {

show.style.top = ‘100px‘;

console.log(‘上2‘);

} else if (moveLeft > 100) {

show.style.left = ‘100px‘;

console.log(‘左2‘);

} else {

show.style.top = moveTop + ‘px‘;

show.style.left = moveLeft + ‘px‘;

sub.style.top = -moveTop * 3 + ‘px‘;

sub.style.left = -moveLeft * 3 + ‘px‘;

}

}

show.onmouseup = function() {

this.onmousemove = null;

}

}

file.addEventListener(‘change‘, function() {

let reader = new FileReader(),

img = wrap.querySelector(‘img‘),

subImg = sub.querySelector(‘img‘);

reader.readAsDataURL(this.files[0]);

reader.onloadend = function() {

img.src = this.result;

subImg.src = this.result

}

}, false);

move();

}

</script>

</head>

<body>

<div class="picture">

<div class="wrap">

<img src="C:\Users\Administrator\Desktop\test.jpg" >

<div id=‘show‘></div>

</div>

<input id="file" class="upload" type="file" value="">

<div class="subWrap">

<div class="sub">

<img src="C:\Users\Administrator\Desktop\test.jpg" >

</div>

</div>

</div>

</body>

<script>

</script>

</html>

原文地址:https://www.cnblogs.com/qiaoxinming/p/8394872.html

时间: 2024-10-08 14:00:11

HTML5图片预览 放大的相关文章

html5 图片预览(抄)

<!DOCTYPE html> <html> <head> <title>HTML5上传图片预览</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script src="http://www.codefans.net/ajaxjs/jquery-1.6.2.min.js&qu

如何在HTML5 图片预览

HTML5的 File API允许浏览器访问本地文件系统,借助它我们可以实现以前无法实现的本地图片预览功能. 先介绍下该API实现了那些接口: 1.Blob接口,表示原始的二进制数据,通过它可以访问到文件的大小和字节数据 2.File接口,保存着文件的只读属性信息,如文件名,文件类型,文件数据访问的地址. 3.FileList,一个File文件组成的数组,表示用户通过<input type="file" multiple/>选择的文件(multiple表示支持文件多选) 4

图片预览放大缩小插件

在看项目时,突然看到预览图片的弹窗,感觉好僵硬,不能放大,不能切换,于是便在网上找下关于图片预览的插件,有找到三个插件,具体的优劣势的看自己的使用吧,我目前只是在电脑查看效果,分别是viewerjs插件.基于photoswipe的vue-photo-preview插件以及vue-picture-preview插件 第一种:viewerjs使用介绍 viewerjs插件截图 1.先安装依赖 npm install v-viewer --save 2.main.js内引用并注册调用 //main.j

HTML5图片预览

作者:Snandy 两种方式实现 URL FileReader 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 <!DOCTYPE HTML> <html>     <head>     <meta charset="utf

微信企业号办公系统-图片预览放大功能-previewImage

在微信里看过文章的应该知道,文章里的图片点击后可以放大.分享和保存. 然而自己在微信里开发的网页,里面的图片点击后没办法实现这个效果,然后就去看了下微信JS文档,里面有个previewImage可以调用. previewImage是微信客户端给内置浏览器增加的一个Javascript Interface,通过调用这个API,可以调起微信客户端提供的大图片查看组件. 官方说明和例子: wx.previewImage({ current: '', // 当前显示图片的http链接 urls: []

html5 图片上传,支持图片预览、压缩、及进度显示,兼容IE6+及标准浏览器

原文:html5 图片上传,支持图片预览.压缩.及进度显示,兼容IE6+及标准浏览器 以前写过上传组件,见 打造 html5 文件上传组件,实现进度显示及拖拽上传,兼容IE6+及其它标准浏览器,对付一般的上传没有问题,不过如果是上传图片,且需要预览的话,就力有不逮了,趁着闲暇时间,给上传组件添加了单独的图片上传UI,支持图片预览和缩放(通过调整图片的大小以实现图片压缩). 上传组件特点 轻量级,不依赖任何JS库,核心代码(Q.Uploader.js)仅约700行,min版本加起来不到12KB 纯

简单的移动端图片预览 包含放大缩小以及对各种手势的判定

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0"/> <title>title&

js实现移动端图片预览:手势缩放, 手势拖动,双击放大...

.katex { display: block; text-align: center; white-space: nowrap; } .katex-display > .katex > .katex-html { display: block; } .katex-display > .katex > .katex-html > .tag { position: absolute; right: 0px; } .katex { font-style: normal; font

点击图片放大图片预览左右切换

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 6 <meta http-equiv="X-UA-Compatib