我的建议是使用background-image
, 并同时加载两个图像。这将防止在第一次悬停时加载悬停图像时闪烁。如果将图像加载为图像而不是背景图像,则可以使用CSS将悬停图像的不透明度设置为0,然后在悬停时仅将不透明度设置为1。通过对图像使用绝对位置,它们应该相互重叠。
<div class="box">
<?php $id = get_the_ID(); ?>
<div class="rounded-circle staff-pic" id="staff-pic-<?php echo $id; ?>">
<img src="<?php the_post_thumbnail_url(\'full\'); ?>" alt="<?php echo $id;?>" class="initial-image">
<?php if(class_exists(\'MultiPostThumbnails\')):
$hover_pic = MultiPostThumbnails::get_post_thumbnail_url(get_post_type(),\'secondary-image\');?>
<img src="<?php echo $hover_pic;?>" class="hover-pic">
<?php endif; ?>
</div>
<h3 class="text-center team-name">
<?php the_title(); ?>
</h3>
<p class="description text-center">
<?php the_content(); ?>
</p>
</div>
使用以下CSS:
.rounded-circle.staff-pic {
position: relative;
}
.initial-image {
position: absolute;
top:0;
left:0;
z-index: 1;
}
.hover-pic {
position: absolute;
top:0;
left:0;
opacity: 0;
z-index: 2
}
.rounded-circle.staff-pic::hover .hover-pic {
opacity: 1;
transition: all 300ms;
}
您可能需要对css进行一些小的调整,但在没有实际看到布局的情况下,这应该是一个很好的开始。