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 相关文章推荐
让textarea控件的滚动条怎是位与最下方
Apr 20 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
Jquery倒计时源码分享
May 16 Javascript
javascript实现的元素拖动函数宿主为浏览器
Jul 21 Javascript
详解jQuery中的元素的属性和相关操作
Aug 14 Javascript
Node.js插件安装图文教程
May 06 Javascript
超实用的javascript时间处理总结
Aug 16 Javascript
js点击按钮实现水波纹效果代码(CSS3和Canves)
Sep 15 Javascript
webpack 4.0.0-beta.0版本新特性介绍
Feb 10 Javascript
浅谈Vue为什么不能检测数组变动
Oct 14 Javascript
Vue 实现html中根据类型显示内容
Oct 28 Javascript
Express 配置HTML页面访问的实现
Nov 01 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下载生成的csv文件及问题总结
2015/08/06 PHP
PHP的命令行命令使用指南
2015/08/18 PHP
PHP使用MPDF类生成PDF的方法
2015/12/08 PHP
PHP定义字符串的四种方式详解
2018/02/06 PHP
PHP自动生成缩略图函数的源码示例
2019/03/18 PHP
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
深入剖析JavaScript中的枚举功能
2014/03/06 Javascript
js中的cookie的读写操作示例详解
2014/04/17 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
jQuery实现DIV层淡入淡出拖动特效的方法
2015/02/13 Javascript
js中for in语句的用法讲解
2015/04/24 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
简单实现js倒计时功能
2017/02/13 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
Bootstrap3.3.7导航栏下拉菜单鼠标滑过展开效果
2017/10/31 Javascript
VueRouter导航守卫用法详解
2017/12/25 Javascript
Vue触发式全局组件构建的方法
2018/11/28 Javascript
如何在Vue.js中实现标签页组件详解
2019/01/02 Javascript
一个简单的python程序实例(通讯录)
2013/11/29 Python
python的random模块及加权随机算法的python实现方法
2017/01/04 Python
Django MEDIA的配置及用法详解
2019/07/25 Python
Python 线程池用法简单示例
2019/10/02 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
Python实现一个论文下载器的过程
2021/01/18 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
全球第二大家装零售商:Lowe’s
2018/01/13 全球购物
荷兰电脑专场:Paradigit
2018/05/05 全球购物
新西兰杂志订阅:isubscribe
2019/08/26 全球购物
美国Max仓库:Max Warehouse
2020/05/31 全球购物
出国考察邀请函
2014/01/21 职场文书
一年级数学教学反思
2014/02/01 职场文书
2014年庆元旦活动方案
2014/02/15 职场文书
2014年体育部工作总结
2014/11/13 职场文书
2015年七一建党节活动总结
2015/03/20 职场文书