2 回答
TA贡献1993条经验 获得超5个赞
使用index()确定集合中哪个元素的索引被悬停
const content = ['Item 1','Item 2','Item 3','Item 4','Item 5','Item 6'];
const $sq = $('.hov-sq').hover(function() {
const idx = $sq.index(this);
$('.c-1').attr('data-content', content[idx]);
}, function(){
// remove when mouse leaves if wanted
$('.c-1').attr('data-content','')
});
.landing-hov-s {
width: 100vw;
height: 100vh;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
flex-wrap: wrap;
}
.hov-sq {
width: 33.3333333vw;
height: 50vh;
z-index: 5000;
}
.c-1::after {
/* other styling not relevant to issue */
content: attr(data-content) '';
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="landing-hov-s">
<div class="hov-sq">One</div>
<div class="hov-sq">Two</div>
<div class="hov-sq">Three</div>
<div class="hov-sq">Four</div>
<div class="hov-sq">Five</div>
<div class="hov-sq">Six</div>
</div>
<div class="c-1">
<h1>Laurent<br> Chevrette</h1>
</div>
TA贡献2021条经验 获得超8个赞
jQuery 的索引方法
如果您使用的是 jQuery,则可以访问该index()
方法。
out
我还添加了一旦鼠标位于悬停的 div 上就会运行的函数。
也就是说,请注意您不能选择伪元素和 Javascript,因此您应该使用 CSS 中的属性选择器来设置它们的样式,如下所示。
$('.hov-sq').hover(function() {
$('.c-1')
.attr('data-content', 'frontend developer')
.attr('data-index', $(this).index());
console.log($(this).index())
}, function() {
$('.c-1')
.attr('data-content', '')
.attr('data-index', '');
});
.landing-hov-s {
width: 100vw;
height: 100vh;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: flex;
flex-wrap: wrap;
}
.hov-sq {
width: 33.3333333vw;
height: 50vh;
z-index: 5000;
}
.c-1::after {
/* other styling not relevant to issue */
content: attr(data-content) '';
}
.c-1[data-index="0"]::after {
/* Style for index 0 */
}
/* Rest of the styles */
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="landing-hov-s">
<div class="hov-sq"></div>
<div class="hov-sq"></div>
<div class="hov-sq"></div>
<div class="hov-sq"></div>
<div class="hov-sq"></div>
<div class="hov-sq"></div>
</div>
<div class="c-1">
<h1>Laurent<br> Chevrette</h1>
</div>
添加回答
举报