Dieser Effekt ist nicht schwierig. Der Schlüssel liegt in der Einstellung der Position und Proportionen.
Erfassen Sie die Mausposition, bestimmen Sie den Mauspositionsbereich und das Onmouseover-Ereignis, das Onmousemove-Ereignis und das Onmouseout-Ereignis
Stellen Sie den Anteil des großen Bildes ein, der auf dem kleinen Bild angezeigt wird, vorzugsweise 2-fach oder 4-fach.
Achten Sie vor allem auf die Breite. Das Bild m.jpg, das ich hier habe, ist 1440X900....
Kopieren Sie den Codecode wie folgt:
<!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">
<Kopf>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Lupeneffekt</title>
<style type="text/css">
*{margin:0;padding:0;}
#smallimg{width:360px;float:left;position:relative;border:1px einfarbig rot;}
#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>
<Körper>
<div id="smallimg">
<img src="jq/m.jpg"/>
<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");//Bild filtern
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;
// Die beiden obigen Variablen geben den Bereich an, in dem showimg aktiv sein darf.
};
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;
//Die Berechnungsmethode zum Ermitteln der aktuell verschobenen Anzeigeposition sind Mauskoordinaten – die Koordinaten des äußersten Containers – die Breite (Höhe) der Box/2
Top = Top<0?0:Top>maxHeight?maxHeight:Top;
Left = Left<0?0:Left>maxWidth?maxWidth:Left;
showimg.style.top = Oben + "px";
showimg.style.left = Links + "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>