代码如下:
<template><div class="outer"><div class="left"></div><div class="aTest2"><div class="box">显示方框</div><div class="aTest3"></div></div>
</div></template><style scoped lang='scss'>
.outer{display: flex;justify-content: space-between;position: relative;.left{height: 60px;width: 100%;position: relative;z-index: 100; // 给他设置z-index的主要目的是遮挡动画 transform 要不动画会从顶部而不是现在的位置移动background-color: deeppink;}.aTest2{.box{ // 给他设置z-index的主要目的是遮挡动画 transformposition: relative;z-index: 100; // z-index的使用要结合 positionwidth: 60px;height: 60px;background-color: pink;text-align: center;line-height: 60px;&:hover { // 加的是box的hover事件background-color: yellow;}}&:hover { // 加的是aTest2的hover事件.aTest3 {opacity: 1;transform: none;}}.aTest3{width: 200px;height: 300px;position: absolute;z-index: 1;right: 15px;top: 60px;box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);transform: translateY(-200px) scale(1, 0);transition: all 0.4s, 0.2s;margin-top: 15px;&::before { // 利用伪元素画三角content: "";position: absolute;right: 14px;top: -10px;width: 20px;height: 20px;background: #fff;transform: scale(0.6, 1) rotate(45deg);box-shadow: -3px -3px 5px rgba(0, 0, 0, 0.1);}}}
}
</style>
展示结果如下:

需要注意的是z-index的使用需要结合位置position(absolute,relative都行)否则z-index无效