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 相关文章推荐
jquery实现div阴影效果示例代码
Sep 16 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
Sep 04 Javascript
JavaScript操作URL的相关内容集锦
Oct 29 Javascript
jQuery实现可关闭固定于底(顶)部的工具条菜单效果
Nov 06 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
Dec 03 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
Jan 07 Javascript
input框中的name和id的区别
Nov 16 Javascript
Javascript中八种遍历方法的执行速度深度对比
Apr 25 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
May 30 Javascript
Vue中保存用户登录状态实例代码
Jun 07 Javascript
在Vue项目中引入JQuery-ui插件的讲解
Jan 27 jQuery
javascript+HTML5 canvas绘制时钟功能示例
May 15 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无限分类的类
2007/01/02 PHP
简单示例AJAX结合PHP代码实现登录效果代码
2008/07/25 PHP
php中一个有意思的日期逻辑处理
2012/03/25 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
PHP+MySQL之Insert Into数据插入用法分析
2015/09/27 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
javascript操作cookie_获取与修改代码
2009/05/21 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
jquery.ajax之beforeSend方法使用介绍
2014/12/08 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
jQuery实现字符串全部替换的方法
2016/12/12 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
JS通过调用微信API实现微信支付功能的方法示例
2017/06/29 Javascript
React组件生命周期详解
2017/07/03 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
微信小程序提取公用函数到util.js及使用方法示例
2019/01/10 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
Node.js API详解之 tty功能与用法实例分析
2020/04/27 Javascript
[01:08:44]NB vs VP 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python自然语言编码转换模块codecs介绍
2015/04/08 Python
python使用win32com库播放mp3文件的方法
2015/05/30 Python
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
PyQt实现界面翻转切换效果
2018/04/20 Python
python切片及sys.argv[]用法详解
2018/05/25 Python
PyQt4编程之让状态栏显示信息的方法
2019/06/18 Python
对Python _取log的几种方式小结
2019/07/25 Python
在pycharm中实现删除bookmark
2020/02/14 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
Pycharm2020最新激活码|永久激活(附最新激活码和插件的详细教程)
2020/09/29 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
印度在线购买电子产品网站:Croma
2020/01/02 全球购物
PHP面试题大全
2015/10/16 面试题
党小组鉴定意见
2015/06/02 职场文书