【问题标题】:Scroll horizontally across image thumbnails and have images pop up on mouse hover水平滚动图像缩略图并在鼠标悬停时弹出图像
【发布时间】:2023-03-15 15:10:01
【问题描述】:

我已经在 html 和 css 中编写了一些代码来水平滚动图像缩略图并让它们在鼠标悬停时弹出。问题是,当我可以水平滚动时,鼠标悬停时弹出(放大)的图像仅在包含它的 div 中可见。我希望它在页面上的所有其他内容之上可见。但是由于我通过设置 div 的属性 overflow-x:scroll 创建了滚动条,如果它比 div 大,您将不得不滚动才能看到放大的图像。当我看不到要滚动的 overflow-x 属性时,我可以像我想要的那样在其他所有内容之上查看放大的图像,但所有其他缩略图也是可见的。这是一个代码 sn-p 来显示我所做的。

HTML

<div id="example1">
<h1>This is an example</h1>
<h2>Car 1</h2>
<div class="scroll">
<div id="example1_car1">
<a class="thumb" href="#"><img src="car1.jpg" alt="car1" height="200" width="251"><span>   <img src="car1.jpg" alt="car1"></span></a>
<a class="thumb" href="#"><img src="car2.jpg" alt="car2" height="200" width="251"><span><img src="car2.jpg" alt="car2"></span></a>
<a class="thumb" href="#"><img src="car3.jpg" alt="car3" height="200" width="251"><span><img src="car3.jpg" alt="car3"></span></a>
</div><!--example1_car1-->
</div><!--example1_scroll-->
<h2>Car 2</h2>
<div class="scroll">
<div id="example1_car2">
<a class="thumb" href="#"><img src="car1.jpg" alt="car1" height="200" width="251"><span><img src="car1.jpg" alt="car1"></span></a>
<a class="thumb" href="#"><img src="car2.jpg" alt="car2" height="200" width="251"><span><img src="car2.jpg" alt="car2"></span></a>
<a class="thumb" href="#"><img src="car3.jpg" alt="car3" height="200" width="251"><span>  <img src="car3.jpg" alt="car3"></span></a>
</div><!--example1_car2-->
</div><!--example2_scroll-->
</div><!--example1-->

CSS
#example1_car1,#example1_car2,.scroll{
   position:relative;
}

#example1_car1, #example1_car2
{
  width:2400px;
  height:200px;
  z-index:0
}

.scroll
{
   width:800px;
   height:210px;

   overflow-x:scroll;
   z-index:0;
}

.thumb img {
    border:1px solid #000;
    margin:3px;
    float:left;
    zindex:-1;
}
.thumb span {
    position: relative;/*absolute;*/
    display:none;
}
.thumb:hover, .thumb:hover span {
    display:inline;
    top:0; left: 0px;
    /*z-index:1;*/
    z-index:10;
}

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript css html hover overflow


    【解决方案1】:

    要使放大的图像出现在可滚动区域的顶部/外部,它必须实际位于可滚动区域之外。

    要使放大的图像显示在外部,当悬停在可滚动区域内部的缩略图上时,您需要在 HTML 之上使用 JavaScript 和CSS。

    这里是an example on jsfiddle,我没有更改您的 HTML 结构。相反,当您将鼠标悬停在缩略图上时,我使用 jQuery 将放大的图像克隆到可滚动区域之外并将其附加到 #example1 div。

    JavaScript 部分:

    $('.thumb').hover(
        function(){
            var thumb = $(this).children('img');
            var large = $(this).find('span>img').clone();
            $('#example1').append(large);
            large.addClass('enlargedImg');
            large.css({
                'top': thumb.offset().top,
                'left': thumb.offset().left
            });
        },
        function(){
            $('.enlargedImg').remove();
        }
    );
    

    我使用拇指图像的 offset() 值将放大的图像直接定位在它的顶部。您可能想稍微移动一下,但希望这足以让您开始。

    【讨论】:

      猜你喜欢
      • 2013-01-27
      • 1970-01-01
      • 1970-01-01
      • 2015-06-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多