JS图片放大效果简单实现代码


Posted in Javascript onSeptember 08, 2016

本文实例为大家分享了JS实现图片放大效果 ,供大家参考,具体内容如下

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8"/>
 
<title></title>
 
<style type="text/css"> 

#div1 { 


width:300px; 


height:300px; 


position:relative; 


margin:30px auto 0px;

} 

#div1 img{
 

width: 300px;

} 

 #div1 span { 


width:150px; 


height:150px; 


background:red; 


position:absolute;
 

left:0px;
 

top:0px; 


display:none; 


opacity:0.2;

} 

.show { 


width:100%; 


height:100%;
 

background:red;
 

position:absolute;
 

left:0px; top:0px; 


z-index:10px; 


opacity:0.1;

} 

#div2 {
 

width:300px;
 

height:300px; 


position:relative; 


top: -300px;
 

left: 300px;
 

display:none; 


overflow:hidden; 


margin:0px auto 0px;

} 

#img1 { 


position:absolute;

} 

</style> 

</head>

<body>
 

<div id="div1"> 



<!-- 图片 -->



<img src="images/xiangqing.png" alt=""> 



<!-- 鼠标选中框 -->



<span></span> 



<!-- 背景 -->



<div class="show"></div>
 

</div> 


<div id="div2"> 



<!-- 放大后的图片 -->



<img id="img1" src="images/xiangqingda.png" /> 


</div> 
</body>
 <script>


 

// 加载完成后显示

window.onload=function () { 


var oDiv=document.getElementById('div1'); 


var oShow=document.getElementsByClassName('show')[0]; 


var oSpan=document.getElementsByTagName('span')[0]; 


var oImg=document.getElementById('img1');
 

// parentNode获得父节点
 

oShow.onmouseover=function() { 


oSpan.style.display='block'; 


oImg.parentNode.style.display='block'; 


}; 


oShow.onmouseout=function() { 



oSpan.style.display=''; 



oImg.parentNode.style.display=''; 


}; 


// 放大器移动
 

oShow.onmousemove=function(ev) { 


// 解决浏览器兼容问题
 

var oEvent=ev||event;


// 获得鼠标的位置
 

var x=oEvent.offsetX-oSpan.offsetWidth/2; 


var y=oEvent.offsetY-oSpan.offsetHeight/2;



// console.log(oEvent.clientY);


// console.log(oDiv.offsetTop);


// console.log(oSpan.offsetHeight/2);


// console.log(oEvent.clientY);
 


if(x<0) { 



x=0; 


} else if(x>oShow.offsetWidth-oSpan.offsetWidth) { 



x=oShow.offsetWidth-oSpan.offsetWidth; 


} if(y<0) { 



y=0; 


} else if(y>oShow.offsetHeight-oSpan.offsetHeight) { 



y=oShow.offsetHeight-oSpan.offsetHeight;


} 


// 给选中框定位
 

oSpan.style.left=x+'px'; 


oSpan.style.top=y+'px'; 


// 给放大器定位
 

var percentX=x/(oShow.offsetWidth-oSpan.offsetWidth); 


var percentY=y/(oShow.offsetHeight-oSpan.offsetHeight); 


var oImgparent=oImg.parentNode; 


oImg.style.left=-percentX*(oImg.offsetWidth-oImgparent.offsetWidth)+'px'; 


oImg.style.top=-percentY*(oImg.offsetHeight-oImgparent.offsetHeight)+'px'; 

}; 
};


</script>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript 获得选中文本内容的方法
Feb 15 Javascript
JS异常处理的一个想法(sofish)
Mar 14 Javascript
jquery.post用法示例代码
Jan 03 Javascript
JS判断、校验MAC地址的2个实例
May 05 Javascript
javascript 封装Date日期类实例详解
May 28 Javascript
JavaScript变量类型以及变量作用域详解
Aug 14 Javascript
node中koa中间件机制详解
Aug 22 Javascript
vue translate peoject实现在线翻译功能【新手必看】
Jun 07 Javascript
微信小程序实现手指触摸画板
Jul 09 Javascript
vue仿淘宝滑动验证码功能(样式模仿)
Dec 10 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
Dec 01 Javascript
Vue实现购物车基本功能
Nov 08 Javascript
Angularjs 实现一个幻灯片示例代码
Sep 08 #Javascript
利用Vue.js指令实现全选功能
Sep 08 #Javascript
AngularJS 实现JavaScript 动画效果详解
Sep 08 #Javascript
javascript使用 concat 方法对数组进行合并的方法
Sep 08 #Javascript
jQuery插入节点和移动节点用法示例(insertAfter、insertBefore方法)
Sep 08 #Javascript
jQuery删除节点用法示例(remove方法)
Sep 08 #Javascript
jQuery复制节点用法示例(clone方法)
Sep 08 #Javascript
You might like
PHP Pear 安装及使用
2009/03/19 PHP
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
2013/09/30 PHP
ThinkPHP中url隐藏入口文件后接收alipay传值的方法
2014/12/09 PHP
php实现无限级分类
2014/12/24 PHP
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
简述php环境搭建与配置
2016/12/05 PHP
PHP利用DWZ.CN服务生成短网址
2019/08/11 PHP
PHP实现简单注册登录系统
2020/12/28 PHP
javascript 学习笔记(onchange等)
2010/11/14 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
Javascript表格翻页效果的具体实现
2013/10/05 Javascript
jQuery自动完成插件completer附源码下载
2016/01/04 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
vue登录注册及token验证实现代码
2017/12/14 Javascript
图文详解vue框架安装步骤
2019/02/12 Javascript
快速解决Vue、element-ui的resetFields()方法重置表单无效的问题
2020/08/12 Javascript
[01:14]3.19DOTA2发布会 三代刀塔人第二代
2014/03/25 DOTA
[57:41]Secret vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
[52:03]Secret vs VG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python抽象类的新写法
2015/06/18 Python
浅谈终端直接执行py文件,不需要python命令
2017/01/23 Python
django表单实现下拉框的示例讲解
2018/05/29 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
python实现自动解数独小程序
2019/01/21 Python
Python3实现飞机大战游戏
2020/04/24 Python
Opencv求取连通区域重心实例
2020/06/04 Python
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
德国户外商店:eXXpozed
2020/07/25 全球购物
保送生自荐信
2015/03/06 职场文书
银行求职信模板
2015/03/20 职场文书
员工辞退通知书
2015/04/17 职场文书
2015年度个人工作总结报告
2015/10/24 职场文书
Python数据分析之绘图和可视化详解
2021/06/02 Python
python数字图像处理之图像自动阈值分割示例
2022/06/28 Python