最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

使用原生JavaScript实现放大镜效果

来源:动视网 责编:小采 时间:2020-11-27 19:39:57
文档

使用原生JavaScript实现放大镜效果

使用原生JavaScript实现放大镜效果:这篇文章主要介绍了原生JavaScript实现的简单放大镜效果,涉及javascript事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下本文实例讲述了原生JavaScript实现的简单放大镜效果。分享给大家供大家参考,具体如下:原理: 其实所谓的放大就是准
推荐度:
导读使用原生JavaScript实现放大镜效果:这篇文章主要介绍了原生JavaScript实现的简单放大镜效果,涉及javascript事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下本文实例讲述了原生JavaScript实现的简单放大镜效果。分享给大家供大家参考,具体如下:原理: 其实所谓的放大就是准
 这篇文章主要介绍了原生JavaScript实现的简单放大镜效果,涉及javascript事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下

本文实例讲述了原生JavaScript实现的简单放大镜效果。分享给大家供大家参考,具体如下:

原理: 其实所谓的放大就是准备两张一样的图片,除大小不一样。鼠标移动到不同位置,将会显示大图片对应的图片内容。

完整代码:

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>放大镜效果</title>
</head>
<body>
 <p id="wrap" style="position: relative;width: 900px;margin: 0 auto;text-align: center;">
 <p id="smallImg" style="width: 400px;height: 400px; position: relative;z-index: 1;">
 <img src="small.jpg" style="width: 400px;height: 400px;"/>
 <span id="filter" style="width: 200px;height: 200px;background-color: blue;opacity: 0.1;position: absolute;top: 0;left: 0; z-index: 2;cursor: move;display: none;">
 <span>
 </p>
 <p id="bigImg" style="width: 400px;height: 400px;overflow: hidden;position: absolute;right: 0px;top: 0;display: none;">
 <img src="large.jpg" style="width: 800px;height:800px; position: absolute;left: 0;top: 0;">
 </p>
 </p>
 <script type="text/javascript">
 var filter = document.getElementById('filter');
 var smallImg = document.getElementById('smallImg');
 var bigImg = document.getElementById('bigImg');
 var wrap = document.getElementById('wrap');
 var largeImgs = bigImg.getElementsByTagName('img')[0];
 smallImg.onmouseover = function(){
 bigImg.style.display = "inline-block";
 filter.style.display = "inline-block";
 }
 smallImg.onmousemove = function(event){
 var event = event || window.event;
 var mouseleft = event.clientX - wrap.offsetLeft;
 var mousetop = event.clientY - wrap.offsetTop;
 var left = mouseleft<smallImg.offsetWidth/4?0:mouseleft>smallImg.offsetWidth*3/4?smallImg.offsetWidth/2:(mouseleft - filter.offsetWidth/2);
 var top = mousetop<smallImg.offsetHeight/4?0:mousetop>smallImg.offsetHeight*3/4?smallImg.offsetHeight/2:(mousetop - filter.offsetWidth/2);
 filter.style.left = left + "px";
 filter.style.top = top +"px";
 largeImgs.style.left = "-" + left*bigImg.offsetWidth/smallImg.offsetWidth + "px";
 largeImgs.style.top = "-" + top*bigImg.offsetHeight/smallImg.offsetHeight + "px";
 }
 smallImg.onmouseout = function(){
 bigImg.style.display = "none";
 filter.style.display = "none";
 }
 </script>
</body>
</html>

运行效果:

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

有关Material在Angular2中的使用(详细教程)

使用JS如何实现循环Nodelist Dom列表

在Vue中如何实现点击后文字变色

文档

使用原生JavaScript实现放大镜效果

使用原生JavaScript实现放大镜效果:这篇文章主要介绍了原生JavaScript实现的简单放大镜效果,涉及javascript事件响应及页面元素属性动态操作相关实现技巧,需要的朋友可以参考下本文实例讲述了原生JavaScript实现的简单放大镜效果。分享给大家供大家参考,具体如下:原理: 其实所谓的放大就是准
推荐度:
标签: 实现 效果 放大镜
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top