js+css鼠标移动图片放大

网上找到都不太满意。效果像百度图片搜索那样,放在图片上,图片会放大,图片下放还有一些其他信息。哪位写段代码,不甚感激。
是这种鼠标移上去,会放大。
效果见百度的图片,不要点击,鼠标放上去的效果
jquery.hoverpulse这个插件可以实现我想的部分功能,不过我是新手,对JS根本看不懂。不知道要怎么修改,才能达到弹出来的时候,不仅可以显示图片,也需要显示一些图片的介绍之类的信息。哪位大哥可以告诉一下如何修改!

<script>
function showImg(event,imgId){
var x = document.body.scrollLeft+event.clientX;
var y = y=document.body.scrollTop+event.clientY;
document.getElementById(imgId).style.display="block";
document.getElementById(imgId).style.left=x;
document.getElementById(imgId).style.top=y;
}
function hiddenImg(imgId){
document.getElementById(imgId).style.display="none";
}
</script>

-----------以上放在HEAD里-----------

-----------以下为图片代码-----------

<img src="images/ad-03.jpg" width="140" height="90" border="0" onMouseOver="javascript:showImg(event,'asaiblog')" onMouseOut="javascript:hiddenImg('asaiblog')"/></a>
<div id="asaiblog"><div style="padding-bottom:5px; border-bottom:1px #000000 dashed; font-size:15px; color:#990000; font-weight:bold;">公司名称</div>
<img src="images/ad-04.jpg" />
<div style="font-size:12px; line-height:20px;">相关说明:</div>
</div>追问

不是这种效果,鼠标点上去放大的网上代码好像挺多的, 我已经补充了图片了。效果跟你这种不太一样!先谢谢你的回答!我之前网上找到一种JS封装好的, 不过只有图片的弹出,没有加相关的说明!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-10

思路:

鼠标移动事件时,需要计算当前块和放大块的比例。这样就实现看大图了。

下面是代码,仅供参考:

<style>    
* { margin:0; padding:0; }    
.div1, .div2 { position:relative; overflow:hidden; float:left; width:310px; height:310px; margin:10px; }    
.div1 { background:url(images/m1.jpg) no-repeat; }    
.div1 span { display:none; position:absolute; top:0; left:0; width:100px; height:100px; background:yellow; opacity:0.5; }    
.div2 { display:none; }    
.div2 img { position:absolute; top:0; left:0; }    
</style>    
<script src="jquery-1.7.2.js"></script>    
<script>    
$(function (){    
var oDiv1=$('.div1');    
var oDiv2=$('.div2');    
var oSpan=$('.div1 span');    
var oImg=$('.div2 img');    
    
oDiv1.hover(function (){    
oDiv2.show();    
oSpan.show();    
}, function (){    
oDiv2.hide();    
oSpan.hide();    
});    
var maxLeft=oDiv1.width()-oSpan.width();    
var maxTop=oDiv1.height()-oSpan.height();    
    
oDiv1.mousemove(function (ev){    
var left=ev.clientX-oSpan.parent().offset().left-oSpan.width()/2;    
var top=ev.clientY-oSpan.parent().offset().top-oSpan.height()/2;    
    
if (left < 0)    
{    
left=0;    
}    
else if (left > maxLeft)    
{    
left=maxLeft;    
}    
    
if (top < 0)    
{    
top=0;    
}    
else if (top > maxTop)    
{    
top=maxTop;    
}    
    
oSpan.css('left', left+'px');    
oSpan.css('top', top+'px');    
    
// 算比例    
var a=left;    
var b=maxLeft;    
var b2=oImg.width()-oDiv2.width();    
var a2=a/b*b2;    
    
oImg.css('left', -a2+'px');    
});    
});    
</script>    
</head>    
<body>    
<div class="div1">    
<span></span>    
</div>    
<div class="div2">    
<img src="images/b1.jpg" alt="" />    
</div>    
</body>

本回答被网友采纳
第2个回答  2012-12-02
D: 朋友, 不管代码咋样,这个效果100%是度娘抄google的。山中无google,百度称霸王。追问

确实是谷歌的东西!朋友知道这种代码的要如何实现吗?

追答

js,jq什么的其实不复杂,既然你已经找到效果比较适合的jquery插件了,那么剩下的跟js,jq应该联系不大啦,只要把jq代码里hover时要弹出的html代码修改下就行,把改成,再往里面加 跟 什么什么的。我可以帮你看看js代码 :|

追问

我是利用jquery.hoverpulse.js调用,

   代码超出限制了,我发图片,麻烦看一下要怎么修改

追答

我改了下hoverpulse,发给你好啦。

追问

好的。谢谢!发我邮箱地址吧。[email protected]

追答

已发

本回答被提问者采纳
相似回答