使用javascript查看鼠标悬停内容的放大图像

时间:2016-02-09 13:12:53

标签: javascript html css onmouseover onmouseout

我正在尝试使用javascript在鼠标悬停时显示更大版本的图片。我有功能,但显示属性不正确,我需要在页面内容上显示图像,如弹出窗口。

我如何将其添加到我的代码中。我的问题是我的页面被分成列,所以图像受到列宽的限制,所以我需要一种方法来覆盖它,即使用弹出窗口。

DEMO - js fiddle

HTML:

<div class="column1">
<div class="enlarge">
<img id="test" src="example.jpg" onmouseover="bigImg(this)" onmouseout="normalImg(this)" width="400" height="300" class="img-responsive" alt="image">
<div id="test1" class="test1" style="display:none;">
<img width="800" src="example.jpg" alt="" />
</div>
</div>
</div>
<div class="column2">
A LOT OF TEXT IN HERE
</div>

的javascript:

function bigImg() {
            $("#test1").show();
        }

        function normalImg() {
            $("#test1").hide();
        }

3 个答案:

答案 0 :(得分:1)

使用特定元素(ID)编写脚本是有限制的。建议你改用元素类。

你可以通过多种方式实现你想要的,这里是一个使用绝对定位的大图像:

&#13;
&#13;
$('.small-image').on('mouseenter', function(e) {
  $(this).siblings('.big-image').show();
}).on('mouseleave', function(e) {
  $(this).siblings('.big-image').hide();
})
&#13;
body {
  overflow-x: hidden;
}
.row::after {
  content: ' ';
  display: block;
  clear: both;
}
.column {
  float: left;
}
.column1 {
  width: 20%;
}
.column2 {
  width: 80%;
}

img {
  max-width: 100%;
  height: auto;
  display: block;
}

.enlarge {
  position: relative;
}

.big-image {
  display: none;
  position: absolute;
  left: 100%;
  top: 0;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row">
  <div class="column column1">
    <div class="enlarge">
      <img src="http://lorempixel.com/400/300/" class="small-image" alt="image">
      <div class="big-image">
        <img src="http://lorempixel.com/400/300/" alt="" />
      </div>
    </div>
  </div>
  <div class="column column2">
    A LOT OF TEXT IN HERE
  </div>
</div>
&#13;
&#13;
&#13;

同样在 Fiddle

答案 1 :(得分:0)

尝试将img标记放在column1 div之外,然后它将不再受限制。

如果img没有显示文本的顶部,请尝试添加css值z-index。

img {
z-index:2;
}

答案 2 :(得分:0)

使用:

$("#test" ).hover(function() {
  $("#test1").show();
},function(){
    $("#test1").hide();
});

https://jsfiddle.net/2rt836co/4/