我正在尝试使用javascript在鼠标悬停时显示更大版本的图片。我有功能,但显示属性不正确,我需要在页面内容上显示图像,如弹出窗口。
我如何将其添加到我的代码中。我的问题是我的页面被分成列,所以图像受到列宽的限制,所以我需要一种方法来覆盖它,即使用弹出窗口。
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();
}
答案 0 :(得分:1)
使用特定元素(ID)编写脚本是有限制的。建议你改用元素类。
你可以通过多种方式实现你想要的,这里是一个使用绝对定位的大图像:
$('.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;
同样在 Fiddle 。
答案 1 :(得分:0)
尝试将img标记放在column1 div之外,然后它将不再受限制。
如果img没有显示文本的顶部,请尝试添加css值z-index。
img {
z-index:2;
}
答案 2 :(得分:0)
使用:
$("#test" ).hover(function() {
$("#test1").show();
},function(){
$("#test1").hide();
});