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 相关文章推荐
JS查看对象功能代码
Apr 25 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
Nov 30 Javascript
Js 随机数产生6位数字
May 13 Javascript
游览器中javascript的执行过程(图文)
May 20 Javascript
js获取控件位置以及不同浏览器中的差别介绍
Aug 08 Javascript
Javascript中的默认参数详解
Oct 22 Javascript
JavaScript让Textarea支持tab按键的方法
Jun 26 Javascript
JS+Canvas实现的俄罗斯方块游戏完整实例
Dec 12 Javascript
AngularJS过滤器filter用法总结
Dec 13 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
May 12 Javascript
Angular-UI Bootstrap组件实现警报功能
Jul 16 Javascript
js不常见操作运算符总结
Nov 20 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 simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
Json_encode防止汉字转义成unicode的方法
2016/02/25 PHP
Smarty模板简单配置与使用方法示例
2016/05/23 PHP
基于thinkPHP实现的微信自定义分享功能示例
2016/09/23 PHP
php分页原理 分页代码 分页类制作教程
2016/09/23 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
thinkPHP5框架路由常用知识点汇总
2019/09/15 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
js 兼容多浏览器的回车和鼠标焦点事件代码(IE6/7/8,firefox,chrome)
2010/04/14 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
js简单实现用户注册信息的校验代码
2013/11/15 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
javascript实现给定半径求出圆的面积
2015/06/26 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
Bootstrap中定制LESS-颜色及导航条(推荐)
2016/11/21 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
在原生不支持的旧环境中添加兼容的Object.keys实现方法
2017/09/11 Javascript
js操作二进制数据方法
2018/03/03 Javascript
JavaScript 高性能数组去重的方法
2018/09/20 Javascript
深入理解JavaScript 箭头函数
2019/05/30 Javascript
python中将阿拉伯数字转换成中文的实现代码
2011/05/19 Python
Python实现的FTP通信客户端与服务器端功能示例
2018/03/28 Python
python 获取文件下所有文件或目录os.walk()的实例
2018/04/23 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
Python面向对象之继承和组合用法实例分析
2018/08/27 Python
Python中垃圾回收和del语句详解
2018/11/15 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
2019/04/11 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
Python imread、newaxis用法详解
2019/11/04 Python
UGG英国官方网站:UGG UK
2018/02/08 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
项目经理的岗位职责
2013/11/23 职场文书
Golang连接并操作MySQL
2022/04/14 MySQL
基于redis+lua进行限流的方法
2022/07/23 Redis