Jquery 鼠标悬停在带有链接的图像上的图像

发布于 2024-09-26 06:59:38 字数 383 浏览 4 评论 0原文

我读了很多书,我正在尝试找到一个解决方案来做到这一点:

当您将鼠标移到任何产品图像上时,会出现一个按钮,它是一个 href 链接。单击该按钮将打开一个覆盖框。我打算为此使用厚盒。

我的问题是试图弄清楚当鼠标悬停在图像上时如何使用 Jquery 显示该图像。这是一个很好的例子:

http://oldnavy.gap.com/browse/category .do?cid=55474

该按钮的大小恰到好处,在所有浏览器中都能正确显示,并且始终与其在图像中的位置一致。

非常感谢任何帮助。

谢谢

I read quite a bit and I am trying to find a solution which does this:

When you move your mouse over on any of the product images, a button appears which is a href link. Clicking on that button opens an overlay box. I plan to use thickbox for that.

My issue is trying to figure out how to use Jquery to show that image when the mouse is over on the image. Here is a great example:

http://oldnavy.gap.com/browse/category.do?cid=55474

The button is just the right size and appears correctly in all browsers and always consistent with its position within the image.

Any help is much appreciated.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

菊凝晚露 2024-10-03 06:59:38

您可以仅使用 CSS 来做到这一点...

示例位于 http://jsfiddle.net/nAhTF/
解释

  1. 将图像和链接包装在
    相对定位的 div 将
  2. 链接绝对定位在您想要的位置,并使其位于包装 div 的 :
  3. hover 上的 display:nonedisplay 更改为 IE7 上阻止

,您可能需要

http 添加 jquery 行示例://jsfiddle.net/nAhTF/1/
解释

  1. 对包装div的悬停也添加一个类,因为IE不支持div上的悬停事件..(并相应地更新css规则

you can do that with CSS only ...

example at http://jsfiddle.net/nAhTF/
explanation

  1. wrap the image and link in a
    relative positioned div
  2. absolute position the link where you want it and make it display:none
  3. on :hover of wrapping div change display to block

on Pre IE7 you might need to add a jquery line

example at http://jsfiddle.net/nAhTF/1/
explanation

  1. on hover of wrapping div add a class as well to it, because IE does not support the hover event on divs.. (and update the css rules accordingly)
云醉月微眠 2024-10-03 06:59:38

如何使用jquery:

  • 1.使用隐藏的div(点击后显示))
  • 2.点击链接 - 那么你应该使用jquery“get”
    http://api.jquery.com/jQuery.get/ -

    • 向服务器发送请求
      特定参数(ID,或其他东西
      else..)获取当前链接坐标(用于div显示)
  • 3.服务器将用数据响应您。(来自数据库..作为示例)
  • 4.显示div,带坐标。 :)

http://rndnext.blogspot.com/2009/02/jquery -ajax-tooltip.html

How to use jquery:

  • 1.Use hidden div(to show it after click))
  • 2.On link click - then you should use jquery "get"
    http://api.jquery.com/jQuery.get/ -

    • send a request to a server with
      specific params(ID,or something
      else..)get current link cordinates (for div show)
  • 3.Server will response you with data.(From datbase..for an example)
  • 4.Show div, with cordinates. :)

http://rndnext.blogspot.com/2009/02/jquery-ajax-tooltip.html

幻想少年梦 2024-10-03 06:59:38

您链接到的网站使用的图像位于图像顶部,上面有一个 clickevent

类似的

<a href="#" class="quicklink"><img src="item1.jpg" /></a>
<a href="#" class="quicklink"><img src="item2.jpg" /></a> 
<a href="#" class="quicklink"><img src="item3.jpg" /></a>

...

<img src="button.jpg" id="button" style="dispaly:none;" />

脚本:

function handler(){
 //possible event for button
}

$(function(){
   $('a.quicklook').mouseover(function(){
      $('#button').css({position:'absolute',top:$(this).offset().top+'px',right:$(this).offset().right+'px'})
      .show().bind('click',handler);
   }).mouseout(function(){
      $('#button').hide();
   });
});

但有更多位置信息,因为这只是将其放在 a 的左上角标签(希望如此)。
我会使用类似的东西,但可能在与链接相同的容器内使用样式和链接,这样我就可以在隐藏它并添加脚本之前对其进行样式设置,还有向后兼容的非 JavaScript 浏览器的可能性,如果它们仍然存在的话(我知道你可以随时将其关闭)

The site that you linked to uses an image that is positioned over the top of the image with a clickevent on it

Some thing like

<a href="#" class="quicklink"><img src="item1.jpg" /></a>
<a href="#" class="quicklink"><img src="item2.jpg" /></a> 
<a href="#" class="quicklink"><img src="item3.jpg" /></a>

...

<img src="button.jpg" id="button" style="dispaly:none;" />

With a script something like:

function handler(){
 //possible event for button
}

$(function(){
   $('a.quicklook').mouseover(function(){
      $('#button').css({position:'absolute',top:$(this).offset().top+'px',right:$(this).offset().right+'px'})
      .show().bind('click',handler);
   }).mouseout(function(){
      $('#button').hide();
   });
});

But with more position information as that just puts it in the top left corner of the a tag (hopefully).
I would use something similar but posibly with a style and link inside the same container as the link so I could style it up before hiding it and adding the scripts, also the possibility for back-compatible non-javascript browsers, if they still exist (I know you can always turn it off)

攒一口袋星星 2024-10-03 06:59:38

最简单的方法是使用 CSS。

HTML:

<div class="product">
    <img src="product.jpg" alt="a product" />
    <a class="buy-button" href="javascript:alert('bought');">Buy now</a>
</div>

CSS:

.product .buy-button { display: none; }
.product:hover .buy-button { display: inline; }

现在这在旧版本的 IE 中不起作用。如果这是一个问题,您可以使用 jQuery 添加一个类,并在 CSS 中使用它。

JS:

$('.product').hover(
    function(){ $(this).addClass('hover'); },
    function(){ $(this).removeClass('hover'); }
);

CSS:

.product.hover .buy-button { display: inline; }

The absolutely easiest way is to use CSS.

HTML:

<div class="product">
    <img src="product.jpg" alt="a product" />
    <a class="buy-button" href="javascript:alert('bought');">Buy now</a>
</div>

CSS:

.product .buy-button { display: none; }
.product:hover .buy-button { display: inline; }

Now this doesn't work in older versions of IE. If that is a problem you can add a class with jQuery, and use it in the CSS.

JS:

$('.product').hover(
    function(){ $(this).addClass('hover'); },
    function(){ $(this).removeClass('hover'); }
);

CSS:

.product.hover .buy-button { display: inline; }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文