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实现网页随机切换背景图片的方法
Nov 01 Javascript
js表头排序实现方法
Jan 16 Javascript
jquery比较简洁的软键盘特效实现方法
Mar 19 Javascript
实现前后端数据交互方法汇总
Apr 07 Javascript
JavaScript转换与解析JSON方法实例详解
Nov 24 Javascript
微信小程序实现实时圆形进度条的方法示例
Feb 24 Javascript
原生js实现鼠标跟随效果
Feb 28 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
Sep 03 jQuery
Parcel.js + Vue 2.x 极速零配置打包体验教程
Dec 24 Javascript
vue.js中导出Excel表格的案例分析
Jun 11 Javascript
纯js实现无缝滚动功能代码实例
Feb 21 Javascript
基于jquery实现彩色投票进度条代码解析
Aug 26 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
NO3第三帝国留言簿制作过程
2006/10/09 PHP
PHP 得到根目录的 __FILE__ 常量
2008/07/23 PHP
php学习之 数组声明
2011/06/09 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
php版小黄鸡simsimi聊天机器人接口分享
2014/01/26 PHP
PHP微信开发之微信消息自动回复下所遇到的坑
2016/05/09 PHP
PHP5.5安装PHPRedis扩展及连接测试方法
2017/01/22 PHP
php实现的支付宝网页支付功能示例【基于TP5框架】
2019/09/16 PHP
JQuery遍历json数组的3种方法
2014/11/08 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
自动化测试读写64位操作系统的注册表
2016/08/15 Javascript
响应式表格之固定表头的简单实现
2016/08/26 Javascript
canvas压缩图片转换成base64格式输出文件流
2017/03/09 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
Angular2中监听数据更新的方法
2018/08/31 Javascript
webpack优化的深入理解
2018/12/10 Javascript
PostgreSQL Node.js实现函数计算方法示例
2019/02/12 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
使用uni-app开发微信小程序的实现
2019/12/13 Javascript
js实现打字小游戏
2019/12/17 Javascript
Python实现简单的代理服务器
2015/07/25 Python
Python数据结构与算法之列表(链表,linked list)简单实现
2017/10/30 Python
机器学习python实战之手写数字识别
2017/11/01 Python
用python打印1~20的整数实例讲解
2019/07/01 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
基于django micro搭建网站实现加水印功能
2020/05/22 Python
Python检测端口IP字符串是否合法
2020/06/05 Python
tensorflow基于CNN实战mnist手写识别(小白必看)
2020/07/20 Python
python爬虫请求头设置代码
2020/07/28 Python
纬创Java面试题笔试题
2014/10/02 面试题
银行出纳岗位职责
2013/11/25 职场文书
文秘档案管理岗位职责
2014/03/06 职场文书
毕业生学校推荐信范文
2014/05/21 职场文书
党员学习党的群众路线思想汇报(5篇)
2014/09/10 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery