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 相关文章推荐
AppBaseJs 类库 网上常用的javascript函数及其他js类库写的
Mar 04 Javascript
formStorage 基于jquery的一个插件(存储表单中元素的状态到本地)
Jan 20 Javascript
JQuery实现用户名无刷新验证的小例子
Mar 22 Javascript
js自动生成的元素与页面原有元素发生堆叠的解决方法
Oct 24 Javascript
js css 实现遮罩层覆盖其他页面元素附图
Sep 22 Javascript
JS小游戏之极速快跑源码详解
Sep 25 Javascript
js点击选择文本的方法
Feb 09 Javascript
JavaScript中Date对象的常用方法示例
Oct 24 Javascript
三种带箭头提示框总结实例
Jun 14 Javascript
原生js实现中奖信息无间隙滚动效果
Jan 18 Javascript
es6函数之箭头函数用法实例详解
Apr 25 Javascript
基于JavaScript实现年月日三级联动
Jun 22 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 object转数组示例
2014/01/15 PHP
PHP动态地创建属性和方法, 对象的复制, 对象的比较,加载指定的文件,自动加载类文件,命名空间
2016/05/06 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
动态加载js文件简单示例
2016/04/21 Javascript
JavaScript的ExtJS框架中表格的编写教程
2016/05/21 Javascript
JavaScript实现通过select标签跳转网页的方法
2016/09/29 Javascript
Vue.js教程之计算属性
2016/11/11 Javascript
layer.open关闭父窗口 以及调用父页面的方法
2018/08/17 Javascript
H5+C3+JS实现五子棋游戏(AI篇)
2020/05/28 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
微信小程序模板消息限制实现无限制主动推送的示例代码
2019/08/27 Javascript
关于layui 实现点击按钮添加一行(方法渲染创建的table)
2019/09/29 Javascript
Vue实现验证码功能
2019/12/03 Javascript
Node.js Domain 模块实例详解
2020/03/18 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
2020/05/11 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
python根据路径导入模块的方法
2014/09/30 Python
Python文件右键找不到IDLE打开项解决办法
2015/06/08 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
基于python代码实现简易滤除数字的方法
2018/07/17 Python
Python使用sorted对字典的key或value排序
2018/11/15 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
Python数据类型之String字符串实例详解
2019/05/08 Python
Python及Pycharm安装方法图文教程
2019/08/05 Python
Python3分析处理声音数据的例子
2019/08/27 Python
python隐藏类中属性的3种实现方法
2019/12/19 Python
python hmac模块验证客户端的合法性
2020/11/07 Python
使用phonegap操作数据库的实现方法
2017/03/31 HTML / CSS
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
科长竞争上岗演讲稿
2014/05/12 职场文书
内乡县衙导游词
2015/02/05 职场文书
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android
python中的random模块和相关函数详解
2022/04/22 Python