【发布时间】:2021-04-04 16:01:40
【问题描述】:
我想创建一张由 64 张图片组成的地图。每个图像都有两个对应的图像,当用户将鼠标悬停在它们上时,它们会一个接一个地显示,然后返回到第一个图像。那部分正在工作。我遇到的问题是用户将鼠标悬停在图像上后图像不会保持正确的大小。我希望图像保留在网格中。
这里是代码(也很抱歉,我还在学习,我希望这不是乱七八糟,也许我正在监督一些非常明显的事情):
<!DOCTYPE html>
<html>
<style>
* {
box-sizing: border-box;
}
body {
margin: 0px;
font-family: Arial;
background-color: yellow;
}
.column {
margin-top: 3%;
margin-bottom: 1%;
float: left;
width: 12.5%;
padding: 0px;
}
.column img {
border: 0.5px solid yellow;
float: left;
height: 100px;
background-size: cover;
}
.row:after {
content: "";
display: table;
clear: both;
}
</style>
<body>
<head>
</head>
<div class="row">
<div class="column">
<div class="list">
<img src="A/1.jpg" ; class="preview" ; style="width:100%">
<img src="B/word1.jpg" ; class="preview" ; style="width:100%">
<img src="C/1b.jpg" ; class="preview" ; style="width:100%">
</div>
<img src="A/9.jpg" style="width:100%">
<img src="A/17.jpg" style="width:100%">
<img src="A/25.jpg" style="width:100%">
<img src="A/33.jpg" style="width:100%">
<img src="A/41.jpg" style="width:100%">
<img src="A/49.jpg" style="width:100%">
<img src="A/57.jpg" style="width:100%">
</div>
<div class="column">
<img src="A/2.jpg" style="width:100%">
<img src="A/10.jpg" style="width:100%">
<img src="A/18.jpg" style="width:100%">
<img src="A/26.jpg" style="width:100%">
<img src="A/34.jpg" style="width:100%">
<img src="A/42.jpg" style="width:100%">
<img src="A/50.jpg" style="width:100%">
<img src="A/58.jpg" style="width:100%">
</div>
<div class="column">
<img src="A/3.jpg" style="width:100%">
<img src="A/11.jpg" style="width:100%">
<img src="A/19.jpg" style="width:100%">
<img src="A/27.jpg" style="width:100%">
<img src="A/35.jpg" style="width:100%">
<img src="A/43.jpg" style="width:100%">
<img src="A/51.jpg" style="width:100%">
<img src="A/59.jpg" style="width:100%">
</div>
<div class="column">
<img src="A/4.jpg" style="width:100%">
<img src="A/12.jpg" style="width:100%">
<img src="A/20.jpg" style="width:100%">
<img src="A/28.jpg" style="width:100%">
<img src="A/36.jpg" style="width:100%">
<img src="A/44.jpg" style="width:100%">
<img src="A/52.jpg" style="width:100%">
<img src="A/60.jpg" style="width:100%">
</div>
<div class="column">
<img src="A/5.jpg" style="width:100%">
<img src="A/13.jpg" style="width:100%">
<img src="A/21.jpg" style="width:100%">
<img src="A/29.jpg" style="width:100%">
<img src="A/37.jpg" style="width:100%">
<img src="A/45.jpg" style="width:100%">
<img src="A/53.jpg" style="width:100%">
<img src="A/61.jpg" style="width:100%">
</div>
<div class="column">
<img src="A/6.jpg" style="width:100%">
<img src="A/14.jpg" style="width:100%">
<img src="A/22.jpg" style="width:100%">
<img src="A/30.jpg" style="width:100%">
<img src="A/38.jpg" style="width:100%">
<img src="A/46.jpg" style="width:100%">
<img src="A/54.jpg" style="width:100%">
<img src="A/62.jpg" style="width:100%">
</div>
<div class="column">
<img src="A/7.png" style="width:100%">
<img src="A/15.jpg" style="width:100%">
<img src="A/23.jpg" style="width:100%">
<img src="A/31.jpg" style="width:100%">
<img src="A/39.jpg" style="width:100%">
<img src="A/47.jpg" style="width:100%">
<img src="A/55.jpg" style="width:100%">
<img src="A/63.jpg" style="width:100%">
</div>
<div class="column">
<img src="A/8.jpg" style="width:100%">
<img src="A/16.jpg" style="width:100%">
<img src="A/24.jpg" style="width:100%">
<img src="A/32.jpg" style="width:100%">
<img src="A/40.jpg" style="width:100%">
<img src="A/48.jpg" style="width:100%">
<img src="A/56.jpg" style="width:100%">
<img src="A/64.jpg" style="width:100%">
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function () {
$(".preview").hide();
var myInterval = false;
$("div.list").each(function () {
$(".preview:first", this).show();
$(this).height($(".preview:first", this).height());
});
$('.preview').hover(function (e) {
var $imgGrp = $(e.target);
var $parent = $imgGrp.parent();
var $firstImage = $parent.children('.preview:first');
var iOffSet = $imgGrp.offset();
myInterval = setInterval(function () {
var $nextImg;
$firstImage.hide();
if ($imgGrp.next('.preview').length == 0) {
$imgGrp.fadeOut('normal');
$imgGrp = $firstImage;
$nextImg = $imgGrp;
} else
$nextImg = $imgGrp.next('.preview');
if ($imgGrp != $nextImg)
$imgGrp.fadeOut('normal');
$nextImg.css({
'top': iOffSet.top,
'left': iOffSet.left,
'position': 'absolute'
});
$nextImg.fadeIn('normal');
$imgGrp = $nextImg;
}, 750);
},
function () {
clearInterval(myInterval);
myInterval = false;
});
});
</script>
</body>
</html>
如果有人有任何建议,我将非常感激。
【问题讨论】:
标签: javascript html jquery css image