手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >javascript放大镜效果的简单实现
javascript放大镜效果的简单实现
摘要:这个效果并不难,要点是位置和比例设置,捕获鼠标位置、判断鼠标位置区域、还有onmouseover事件、onmousemove事件、onmou...

这个效果并不难,要点是位置和比例设置,

捕获鼠标位置、判断鼠标位置区域、还有onmouseover事件、onmousemove事件、onmouseout事件

设置显示大图的比例,小图上显示的切图比例都要弄准确点,最好是2倍啦,4倍啦。

主要注意宽度,我这里的图片m.jpg是1440X900的....

复制代码 代码如下:

<!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>

【javascript放大镜效果的简单实现】相关文章:

javascript嵌套函数和在函数内调用外部函数的区别分析

javascript用函数实现对象的方法

Javascript技术栈中的四种依赖注入小结

javascript原型模式用法实例详解

javascript正则表达式总结

javascript实现模拟时钟的方法

Javascript 高阶函数使用介绍

javascript获取select值的方法分析

javascript的事件描述

javascript改变和控制显示的图片大小

精品推荐
分类导航