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打造PHP的AJAX表单提交实例
Nov 03 Javascript
JavaScript基本编码模式小结
May 23 Javascript
13 个JavaScript 性能提升技巧分享
Jul 26 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
Jan 14 Javascript
js实现带农历和八字等信息的日历特效
May 16 Javascript
省市联动效果的简单实现代码(推荐)
Jun 06 Javascript
原生js实现旋转木马轮播图效果
Feb 27 Javascript
Vue.js组件tab实现选项卡切换
Mar 23 Javascript
node.js基于express使用websocket的方法
Nov 09 Javascript
js登录滑动验证的实现(不滑动无法登陆)
Jan 03 Javascript
详解webpack import()动态加载模块踩坑
Jul 17 Javascript
jQuery提示框插件SweetAlert用法分析
Aug 05 jQuery
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
在PHP3中实现SESSION的功能(一)
2006/10/09 PHP
json的键名为数字时的调用方式(示例代码)
2013/11/15 PHP
PHP之预定义接口详解
2015/07/29 PHP
php需登录的文件上传管理系统
2020/03/21 PHP
PHP中对数组的一些常用的增、删、插操作函数总结
2015/11/27 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
php实现mysql连接池效果实现代码
2018/01/25 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
js word表格动态添加代码
2010/06/07 Javascript
Javascript的setTimeout()使用闭包特性时需要注意的问题
2014/09/23 Javascript
JS模拟bootstrap下拉菜单效果实例
2016/06/17 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
React Native自定义控件底部抽屉菜单的示例
2018/02/08 Javascript
在vant中使用时间选择器和popup弹出层的操作
2020/11/04 Javascript
js前端对于大量数据的展示方式及处理方法
2020/12/02 Javascript
Python urllib模块urlopen()与urlretrieve()详解
2013/11/01 Python
Python字典推导式将cookie字符串转化为字典解析
2019/08/10 Python
利用python实现AR教程
2019/11/20 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
python json load json 数据后出现乱序的解决方案
2020/02/27 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
python中tkinter窗口位置\坐标\大小等实现示例
2020/07/09 Python
全面总结使用CSS实现水平垂直居中效果的方法
2016/03/10 HTML / CSS
比利时香水网上商店:NOTINO
2018/03/28 全球购物
个人简历自我评价八例
2013/10/31 职场文书
普通大学毕业生自荐信
2013/11/04 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
学校安全责任书
2014/04/14 职场文书
疾病捐款倡议书
2014/05/13 职场文书
诚信考试标语
2014/06/24 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
《圆明园的毁灭》教学反思
2016/02/16 职场文书
2016年第16个全民国防教育日宣传活动总结
2016/04/05 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS