效果展示:
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<style type="text/css">
*{
margin: 0;
padding: 0;
}
.container {
position: relative;
width: 500px; /* 按照实际情况设置宽度 */
}
.logo {
position: fixed;
top: 0;
left: 0;
z-index: 1; /* 使 logo 在图片上方 */
color: #fff; /* 设置 logo 文字的颜色为白色 */
font-size: 36px;
font-weight: bold;
text-transform: uppercase;
mix-blend-mode: difference; /* 使用 mix-blend-mode 属性实现颜色反转效果 */
transition: color 0.3s ease; /* 设置过渡效果,使变化更加平滑 */
}
.container.overlap .logo {
color: #000; /* 当容器与图片重叠时,将 logo 文字的颜色改为黑色 */
}
</style>
<div class="container">
<img src="https://img-blog.csdnimg.cn/47f119243ad644988f3627aeac8db268.jpeg#pic_center">
<div style="width: 100%;height: 560px;background-color: red;"></div>
<div style="width: 100%;height: 560px;background-color: #000000;"></div>
<div style="width: 100%;height: 560px;background-color: #CCCCCC;"></div>
<div style="width: 100%;height: 560px;background-color: #FFFFFF;"></div>
<div style="width: 100%;height: 560px;background-color: #FFFFFF;"></div>
<div class="logo"><img src="https://img-blog.csdnimg.cn/1ee5097edfef4bf9b0bfb43f68790b29.png#pic_center" alt=""></div>
</div>
<script type="text/javascript">
$(document).ready(function() {
var container = $('.container');
var logo = $('.logo');
/* 判断容器与图片是否重叠,设置相应的 class */
function checkOverlap() {
var overlap = logo.width() * logo.height() > 0 && (
logo.offset().left < container.offset().left + container.width() &&
logo.offset().left + logo.width() > container.offset().left &&
logo.offset().top < container.offset().top + container.height() &&
logo.offset().top + logo.height() > container.offset().top
);
container.toggleClass('overlap', overlap);
}
/* 页面加载时判断容器与图片是否重叠 */
checkOverlap();
/* 监听窗口的 resize 事件,以防容器大小改变导致重叠状态改变 */
$(window).on('resize', checkOverlap);
});
</script>