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客户端脚本的设计和应用
Aug 21 Javascript
用js 让图片在 div或dl里 居中,底部对齐
Jan 21 Javascript
javascript 命名空间以提高代码重用性
Nov 13 Javascript
JavaScript入门教程(8) Location地址对象
Jan 31 Javascript
使用jQuery全局事件ajaxStart为特定请求实现提示效果的代码
Dec 30 Javascript
一个基于jquery的文本框记数器
Sep 19 Javascript
jquery.validate使用时遇到的问题
May 25 Javascript
基于js实现的限制文本框只可以输入数字
Dec 05 Javascript
Bootstrap Table使用整理(四)之工具栏
Jun 09 Javascript
vue表单中遍历表单操作按钮的显示隐藏示例
Oct 30 Javascript
Vue 解决路由过渡动画抖动问题(实例详解)
Jan 05 Javascript
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 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
php获取url参数方法总结
2014/11/13 PHP
PHP中mysqli_affected_rows作用行数返回值分析
2014/12/26 PHP
php压缩和解压缩字符串的方法
2015/03/14 PHP
PHP设计模式之工厂模式实例总结
2017/09/01 PHP
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
js this函数调用无需再次抓获id,name或标签名
2014/03/03 Javascript
Javascript保存网页为图片借助于html2canvas库实现
2014/09/05 Javascript
javascript中mouseover、mouseout使用详解
2015/07/19 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
AngularJS入门教程之静态模板详解
2016/08/18 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
基于canvas的二维码邀请函生成插件
2017/02/14 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
vue无限轮播插件代码实例
2019/05/10 Javascript
JavaScript this关键字指向常用情况解析
2020/09/02 Javascript
Vue——前端生成二维码的示例
2020/12/19 Vue.js
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
Python对list列表结构中的值进行去重的方法总结
2016/05/07 Python
linux环境下的python安装过程图解(含setuptools)
2017/11/22 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
Pandas之Dropna滤除缺失数据的实现方法
2019/06/25 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
Python全面分析系统的时域特性和频率域特性
2020/02/26 Python
PyPDF2读取PDF文件内容保存到本地TXT实例
2020/05/12 Python
python实现图书馆抢座(自动预约)功能的示例代码
2020/09/29 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
韩国11街:11STREET
2018/03/27 全球购物
会计的岗位职责
2014/03/15 职场文书
汽车促销活动方案
2014/03/31 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
书香家庭事迹材料
2014/05/09 职场文书
美食节策划方案
2014/05/26 职场文书
2014年幼儿园教师工作总结
2014/11/08 职场文书
上班迟到检讨书
2015/05/06 职场文书
寻找成龙观后感
2015/06/12 职场文书