<p>今天我给大家分享一下自己用js写的一个图片放大器效果,我在内涵图网<a target=_blank href="http://www.neipic.com">www.neipic.com</a>做了两种效果的放大,其实它们的原理都差不多,都是采用了两张图片给两张图片设定相应的尺寸,最后显示在不同位置,最终实现放大效果。
</p><p>第一种是我仿照淘宝购物页面的一个放大镜效果,当鼠标移动到商品图片上时,图片上会出现一个矩形区域,而这个区域就是你要放大的区域,然后商品图片的右侧会出现一个放大后的商品图片。这种放大方式只需要你计算好放大的比例,然后通过修改放大区域的scrollLeft和scrollTop值实现相应的放大效果。</p>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>图片放大器</title>
<style media="screen">
*{
margin: 0;
padding: 0;
}
/*可视区域的父级标签*/
.wrap{
width: 400px;
height:auto;
border: 1px solid black;
display: inline-block;
position: absolute;
left: 0;
top: 0;
}
.wrap>img{
width: 100%;
height: auto;
}
/*锁定放大的矩形区域*/
.box{
border: 1px solid black;
width: 100px;
height: 100px;
background: rgba(0, 0, 0, 0.5);
opacity: 0.8;
position: absolute;
cursor: pointer;
display: none;
}
/*要显示放大图片的父级*/
.main{
width: 700px;
height: 700px;
margin-left: 420px;
overflow:hidden;
display:none;
position: absolute;
top: 0;
}
.main>img{
width:2800px;
height:auto;
}
</style>
</head>
<body>
<div class="wrap">
<img src="dog.jpg" alt="" />
<div class="box"></div>
</div>
<div class="main">
<img src="dog.jpg"alt="" />
</div>
<script type="text/javascript">
//获取四个对象
var wrap=document.querySelector('.wrap');
var box=document.querySelector('.box');
var main=document.querySelector('.main');
var mainImg=document.querySelector('.main img');
//添加移动事件
wrap.οnmοusemοve=function(){
//鼠标移入可视图片后出现 锁定放大区域及放大图片
box.style.display='block';
main.style.display='block';
var event=window.event || event;
//获取鼠标距离可视区域边缘的偏移量
var disx=event.clientX-box.offsetWidth/2;
var disy=event.clientY-box.offsetHeight/2;
//矩形区域的最大可移动范围
var distanceMaxX=wrap.offsetWidth-box.offsetWidth;
var distanceMaxY=wrap.offsetHeight-box.offsetHeight;
// 判断让锁定放大的矩形区域不能出框
if (disx<=0) {
disx=0;
}
if (disy<=0) {
disy=0;
}
if(disx>=distanceMaxX) {
disx=distanceMaxX;
}
if(disy>=distanceMaxY) {
disy=distanceMaxY;
}
box.style.left=disx+'px';
box.style.top=disy+'px';//获取放大比例
var scalex=box.offsetLeft/distanceMaxX;
var scaley=box.offsetTop/distanceMaxY;
main.scrollLeft=(mainImg.clientWidth-main.clientWidth)*scalex;
main.scrollTop=(mainImg.clientHeight-main.clientHeight)*scaley;
}//添加移出事件
wrap.οnmοuseοut=function(){
box.style.display='none';
main.style.display='none';
}
</script>
</body>
</html>

效果预览:



分享原生js代码实现图片放大境效果相关推荐

  1. 原生js代码实现图片放大境效果

    hello 大家好! 这是我的第一篇博客文章,感谢大家前来阅读,希望我们都能在这个平台上相互交流.共同进步.查漏补缺. 今天我给大家分享一下自己用js写的一个图片放大器效果,我做了两种效果的放大,其实 ...

  2. 微信小程序:收藏、客服、分享、加入购物车、图片放大预览

    微信小程序:收藏.客服.分享.加入购物车.图片放大预览 微信小程序包含功能 ·轮播 ·图片放大预览 ·收藏 ·客服 ·加入购物车 在goods_detail下的index.wxml写页面代码 < ...

  3. 原生js代码编写钟表

    原生js代码编写钟表 利用js中的定时器编写: 直接上代码: <!DOCTYPE html> <html><head><meta charset=" ...

  4. 58行html/js代码实现图片裁剪并保存功能

    58行html/js代码实现图片裁剪保存功能 <input type="file" id="file-input" accept="image/ ...

  5. php侧边栏导航效果,原生js实现电商侧边导航效果

    知识要点 实现原理: 1.点击楼层跳相应楼层,用的是锚点定位 电梯:2F 个护家清 列表title: 这个没什么好说的 2.当点击楼层跳到相应楼层时,该楼层高亮显示 我们的脚本主要就是实现这个功能. ...

  6. css和js实现3d图片,JavaScript_纯JS实现旋转图片3D展示效果,CSS:style type=text/cssgt - phpStudy...

    纯JS实现旋转图片3D展示效果 CSS: #show{position:relative;margin:20px auto;width:800px;} .item{position:absolute; ...

  7. js html css 图片跑马灯效果(轮播)

    js html css 图片跑马灯效果(轮播) js html css 实现图片跑马灯效果(轮播),效果图如下: 代码: html: <div id="marquee-box" ...

  8. html中图片自动循环滚动代码,JavaScript代码实现图片循环滚动效果

    1.概述 循环滚动图片,不仅可以增添Web页面的动态效果,而且可以节省页面空间,有效地保证在有限的页面中显示更多的图片. 2.技术要点 主要应用setTimeout()方法实现图片的循环滚动效果.se ...

  9. 图片放大缩小效果,支持鼠标滑轮

    图片放大缩小效果 效果在附件里,麻烦下载来看吧 <html> <head><title>Simple jsp page</title><link ...

最新文章

  1. oracle 查询本周数据生成下周数据
  2. RACER: Rapid and accurate correction of errors in reads 快速、准确地修正读数中的错误
  3. python调用r_python调用R包的问题
  4. Java Script 之 Promise
  5. 用vs2008打开vs2012项目
  6. VF01开票自动生成会计凭证
  7. python startswitch_python学习第四天
  8. 二十九、深入Python中的collections模块
  9. LeetCode 2058. 找出临界点之间的最小和最大距离(链表)
  10. python必背100源代码-学会这个Python库,至少能减少100行代码
  11. 运放的噪声分析--你好放大器
  12. 移动硬盘格式化后如何数据恢复?
  13. 提高INSERT速度
  14. 46.把数字翻译成字符串
  15. 【论文阅读】Stroke Controllable Fast Style Transfer with Adaptive Receptive Fields
  16. 无盘启动服务器f12,无盘pxe引导winpe
  17. 随笔--读书笔记《软技能:代码之外的生存指南》
  18. 数据库Java项目:在线租房出租房屋系统(java+springboot+maven+mysql)
  19. python天勤金叉编程代码大全_天勤终端数据解决方案
  20. 深度学习制作自己的样本

热门文章

  1. wireshark下载
  2. 分享 63 个面向前端开发人员的开源项目工具
  3. Halcon 进阶 四 C# 实现 Halcon与迈德威视,视觉解析二维码
  4. .cer证书不能导出.p12证书|苹果证书怎么修改信任设置。
  5. SVG阴影、滤镜、渐变
  6. 常用的 shall 命令 及 语法
  7. HP网络打印机--如何添加打印机
  8. 3730-0阀门定位器的工作原理与操作
  9. 获取法定节日放假时间
  10. 【ESP 保姆级教程】玩转emqx SSL篇① ——认证证书 SSL