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 相关文章推荐
麻雀虽小五脏俱全 Dojo自定义控件应用
Sep 04 Javascript
js获得鼠标的坐标值的方法
Mar 13 Javascript
JavaScript加强之自定义callback示例
Sep 21 Javascript
javascript计算当月剩余天数(天数计算器)示例代码
Jan 09 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
May 27 Javascript
Javascript动画效果(3)
Oct 11 Javascript
js中时间格式化的几种方法
Jul 22 Javascript
el-select 下拉框多选实现全选的实现
Aug 02 Javascript
js实现鼠标点击页面弹出自定义文字效果
Dec 24 Javascript
jQuery实现颜色打字机的完整代码
Mar 19 jQuery
处理JavaScript值为undefined的7个小技巧
Jul 28 Javascript
vant-ui组件调用Dialog弹窗异步关闭操作
Nov 04 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新手上路(十四)
2006/10/09 PHP
使用PHPMYADMIN操作mysql数据库添加新用户和数据库的方法
2010/04/02 PHP
用PHP读取超大文件的实例代码
2012/04/01 PHP
Thinkphp框架开发移动端接口(1)
2016/08/18 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
PHP编辑器PhpStrom运行缓慢问题
2017/02/21 PHP
PHP程序员必须知道的两种日志实例分析
2020/05/14 PHP
简单的js分页脚本
2009/05/21 Javascript
Javascript Cookie读写删除操作的函数
2010/03/02 Javascript
JS操作Cookies包括(读取添加与删除)
2012/12/26 Javascript
js数组操作学习总结
2013/11/04 Javascript
在JS数组特定索引处指定位置插入元素的技巧
2014/08/24 Javascript
javascript实现淘宝幻灯片广告展示效果
2015/04/27 Javascript
JavaScript获取页面中超链接数量的方法
2015/11/09 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
基于MVC方式实现三级联动(JavaScript)
2017/01/23 Javascript
webpack3之loader全解析
2017/10/26 Javascript
javascript实现视频弹幕效果(两个版本)
2019/11/28 Javascript
js实现AI五子棋人机大战
2020/05/28 Javascript
原生JS与CSS实现软件卸载对话框功能
2019/12/05 Javascript
vue@cli3项目模板怎么使用public目录下的静态文件
2020/07/07 Javascript
[01:04:31]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第二场 1月8日
2021/03/11 DOTA
python脚本作为Windows服务启动代码详解
2018/02/11 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
Python 实现Windows开机运行某软件的方法
2018/10/14 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
Pytorch实现GoogLeNet的方法
2019/08/18 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
Windows+Anaconda3+PyTorch+PyCharm的安装教程图文详解
2020/04/03 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
C++的几个面试题附答案
2016/08/03 面试题
文明家庭先进事迹材
2014/01/27 职场文书
《月亮湾》教学反思
2014/04/14 职场文书
2014年银行柜员工作总结
2014/11/12 职场文书
创业计划书之校园超市
2019/09/12 职场文书
Docker 镜像介绍以及commit相关操作
2022/04/13 Servers