方式一: 使用纯css方式 , :hover
是可以控制其他元素
1、 当两个元素是父子关系
<div class="all_" >
<div>
<i class="iconfont icon-sun sun"></i>
</div>
</div>
.all_{
}
.sun {
display: none; /* 默认不显示 */
}
.all_:hover .sun {
display: block; /* 鼠标经过时显示 */
}
2、当两个元素是兄弟 (但似乎无法在 hover-b 经过时改变 hover-a)
<template>
<div >
<div class="hover-a">鼠标经过我</div>
<div class="hover-b">这是鼠标经过时显示的内容</div>
</div>
</template>
<style>
.hover-a {
}
.hover-b {
display: none; /* 默认不显示 */
}
.hover-a:hover + .hover-b {
display: block; /* 鼠标经过时显示 */
}
</style>
方式二: 用jquery
<div ref="boxRef" >
<div>
<i ref="sun" class="iconfont icon-sun" style="display:none"></i>
</div>
</div>
methods: {
show_sun() {
let boxRef = $(this.$refs.boxRef)
let sun = $(this.$refs.sun)
console.log('show_sun', boxRef, sun);
boxRef.hover(function () {
sun.css('display', 'block');
}, function () {
sun.css('display', 'none');
});
},
},
mounted() {
setTimeout(() => {
this.show_sun();
}, 1000);
},
方式三:
<template>
<div class="container">
<div class="hover-target" @mouseover="isHovered = true" @mouseleave="isHovered = false">鼠标经过我</div>
<div class="hover-content" v-show="isHovered">这是鼠标经过时显示的内容</div>
</div>
</template>
<script>
export default {
data() {
return {
isHovered: false
};
}
}
</script>