源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

javascript放大镜效果的简单实现

  • 时间:2022-08-30 08:15 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:javascript放大镜效果的简单实现
这个效果并不难,要点是位置和比例设置, 捕获鼠标位置、判断鼠标位置区域、还有onmouseover事件、onmousemove事件、onmouseout事件 设置显示大图的比例,小图上显示的切图比例都要弄准确点,最好是2倍啦,4倍啦。 主要注意宽度,我这里的图片m.jpg是1440X900的....
[u]复制代码[/u] 代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD Xhtml 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>放大镜效果</title> <style type="text/css"> *{margin:0;padding:0;} #smallimg{width:360px;float:left;position:relative;border:1px solid red;} #smallimg img{ width:360px;} #bigimg{float:left;width:400px;height:400px;margin-left:40px;border:1px solid #ccc;display:none;} #showimg{width:100px;height:100px;background:#fff;cursor:move; position:absolute;border:1px solid #666;opacity:0.5;filter:alpha(opacity=50);display:none;} </style> </head> <body> <div id="smallimg">  <img src="jq/m.jpg" alt=""/>  <div id="showimg"> </div> </div> <div id="bigimg"> </div> <script type="text/javascript"> var $=function(id){return typeof id=="string"?document.getElementById(id):id} var smallimg = $("smallimg"); var showimg = $("showimg");//滤镜图片 var bigimg = $("bigimg"); var small_url = smallimg.getElementsByTagName("img")[0].getAttribute("src"); var show_half = maxWidth = maxHeight = 0; smallimg.onmouseover = function(){  showimg.style.display = "block";  bigimg.style.display = "inline";  show_half = showimg.offsetHeight/2;  maxWidth = smallimg.clientWidth - showimg.offsetWidth;  maxHeight = smallimg.clientHeight - showimg.offsetHeight;  //上面两个变量指明showimg允许活动的区域 }; smallimg.onmousemove = function(e){  var e=window.event?window.event:e;  var num=bigimg.clientWidth/showimg.clientWidth;  var Top = e.clientY - smallimg.offsetTop - show_half;  var Left = e.clientX - smallimg.offsetLeft - show_half;  //获取当前移动的showimg位置 计算方法是 鼠标坐标 - 最外面容器的坐标 - 盒子的宽(高)的/2  Top = Top<0?0:Top>maxHeight?maxHeight:Top;  Left = Left<0?0:Left>maxWidth?maxWidth:Left;  showimg.style.top = Top + "px";  showimg.style.left = Left + "px";  bigimg.style.background = "url("+small_url+") -"+Left*num+"px -"+Top*num+"px no-repeat"; }; smallimg.onmouseout = function(){  showimg.style.display="none";  bigimg.style.background ="";  bigimg.style.display="none" }; </script> </body> </html>
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部