2017-01-24 78 views
2

我用HTML和CSS編寫了下拉菜單,當用戶的鼠標懸停在菜單中的按鈕上時,我可以成功地淡入。但是,當鼠標離開下拉菜單時,下拉菜單不會淡出,它會消失嗎?我相信這是一個語法錯誤,但我不知道在哪裏。我如何讓下拉菜單淡出,就像我淡入淡出一樣?下拉菜單淡入,但不淡出

.top-block-container { 
 
    float: left; 
 
    width: 50%; 
 
    margin: 0.5% 0.25%; 
 
} 
 
.top-block-container:hover .top-block-dropdown { 
 
    visibility: visible; 
 
    opacity: 1; 
 
    transform: translateY(0); 
 
    height: auto; 
 
} 
 
.top-block { 
 
    width: 100%; 
 
    font-family: Lato; 
 
    font-weight: 900; 
 
    text-align: center; 
 
    padding: 10px 0; 
 
    border-radius: 50px; 
 
    font-size: 25px; 
 
    transition: background-color 0.25s linear, box-shadow 0.25s linear; 
 
    float: left; 
 
    background: linear-gradient(to bottom, #CCCCCC, #AAAAAA); 
 
    box-shadow: 0 0 5px black; 
 
    margin: 0; 
 
} 
 
.top-block:hover { 
 
    cursor: pointer; 
 
    box-shadow: 0 0 15px black; 
 
} 
 
.top-block-dropdown { 
 
    width: 100%; 
 
    background: linear-gradient(to bottom, #CCCCCC, #AAAAAA); 
 
    float: left; 
 
    margin-top: 7.5px; 
 
    border-radius: 25px; 
 
    box-shadow: 0 0 15px black; 
 
    visibility: hidden; 
 
    opacity: 0; 
 
    height: 0; 
 
    transform: translateY(-2em); 
 
    transition: visibility 0s, transform 0.25s, opacity 0.25s linear; 
 
} 
 
.dropdown-option-heading { 
 
    font-family: Lato; 
 
    font-weight: 700; 
 
    margin: 5px 0 0 0; 
 
    padding: 5px 10px; 
 
    border-bottom: 2px solid white; 
 
} 
 
.dropdown-option { 
 
    font-family: Lato; 
 
    font-weight: 400; 
 
    text-align: center; 
 
    border-bottom: 1px solid white; 
 
    margin: 0; 
 
    padding: 5px 10px; 
 
    transition: box-shadow 0.25s linear; 
 
} 
 
.dropdown-option:hover { 
 
    background: linear-gradient(to top, dodgerblue, #00B0FF); 
 
    cursor: pointer; 
 
} 
 
.last-option { 
 
    border: 0; 
 
    border-bottom-left-radius: 25px; 
 
    border-bottom-right-radius: 25px; 
 
}
<div class="top-block-container"> 
 
    <h1 class="top-block">ECWMF</h1> 
 
    <div class="top-block-dropdown"> 
 
    <p class="dropdown-option-heading">Global Models</p> 
 
    <p class="dropdown-option">GFS</p> 
 
    <p class="dropdown-option">ECMWF</p> 
 
    <p class="dropdown-option">CMC</p> 
 
    <p class="dropdown-option">NAVGEM</p> 
 
    <p class="dropdown-option">UKMET</p> 
 
    <p class="dropdown-option-heading">Mesoscale Models</p> 
 
    <p class="dropdown-option">HRRR</p> 
 
    <p class="dropdown-option">HWRF</p> 
 
    <p class="dropdown-option">NAM 32km</p> 
 
    <p class="dropdown-option">NAM 12km</p> 
 
    <p class="dropdown-option">RAP</p> 
 
    <p class="dropdown-option">SREF</p> 
 
    <p class="dropdown-option last-option">HIRESW</p> 
 
    </div> 
 
</div>

+0

因爲你的轉換有'知名度0s'。給出一個非零值和可見性轉換。或者從所有這些定義中刪除「可見性」。 「不透明」就足夠了。 –

回答

0

你的CSS過渡說,對div的可見度在零秒改變:

.top-block-dropdown { transition: visibility 0s ... } 

所以DIV瞬間消失。你只需要更長的過渡時間。

+0

非常感謝,我也從css中刪除了'height:0;'並且它完美地工作。 –

0

因爲您的轉換有visibility 0s。給出一個非零值和可見性轉換。或者從所有這些定義中刪除visibilityopacity就足夠了。

.top-block-container { 
 
    float: left; 
 
    width: 50%; 
 
    margin: 0.5% 0.25%; 
 
} 
 
.top-block-container:hover .top-block-dropdown { 
 
    opacity: 1; 
 
    transform: translateY(0); 
 
    height: auto; 
 
} 
 
.top-block { 
 
    width: 100%; 
 
    font-family: Lato; 
 
    font-weight: 900; 
 
    text-align: center; 
 
    padding: 10px 0; 
 
    border-radius: 50px; 
 
    font-size: 25px; 
 
    transition: background-color 0.25s linear, box-shadow 0.25s linear; 
 
    float: left; 
 
    background: linear-gradient(to bottom, #CCCCCC, #AAAAAA); 
 
    box-shadow: 0 0 5px black; 
 
    margin: 0; 
 
} 
 
.top-block:hover { 
 
    cursor: pointer; 
 
    box-shadow: 0 0 15px black; 
 
} 
 
.top-block-dropdown { 
 
    width: 100%; 
 
    background: linear-gradient(to bottom, #CCCCCC, #AAAAAA); 
 
    margin-top: 7.5px; 
 
    border-radius: 25px; 
 
    box-shadow: 0 0 15px black; 
 
    opacity: 0; 
 
    height: 0; 
 
    transform: translateY(-2em); 
 
    transition: transform 0.25s, opacity 0.25s linear; 
 
} 
 
.dropdown-option-heading { 
 
    font-family: Lato; 
 
    font-weight: 700; 
 
    margin: 5px 0 0 0; 
 
    padding: 5px 10px; 
 
    border-bottom: 2px solid white; 
 
} 
 
.dropdown-option { 
 
    font-family: Lato; 
 
    font-weight: 400; 
 
    text-align: center; 
 
    border-bottom: 1px solid white; 
 
    margin: 0; 
 
    padding: 5px 10px; 
 
    transition: box-shadow 0.25s linear; 
 
} 
 
.dropdown-option:hover { 
 
    background: linear-gradient(to top, dodgerblue, #00B0FF); 
 
    cursor: pointer; 
 
} 
 
.last-option { 
 
    border: 0; 
 
    border-bottom-left-radius: 25px; 
 
    border-bottom-right-radius: 25px; 
 
}
<div class="top-block-container"> 
 
    <h1 class="top-block">ECWMF</h1> 
 
    <div class="top-block-dropdown"> 
 
    <p class="dropdown-option-heading">Global Models</p> 
 
    <p class="dropdown-option">GFS</p> 
 
    <p class="dropdown-option">ECMWF</p> 
 
    <p class="dropdown-option">CMC</p> 
 
    <p class="dropdown-option">NAVGEM</p> 
 
    <p class="dropdown-option">UKMET</p> 
 
    <p class="dropdown-option-heading">Mesoscale Models</p> 
 
    <p class="dropdown-option">HRRR</p> 
 
    <p class="dropdown-option">HWRF</p> 
 
    <p class="dropdown-option">NAM 32km</p> 
 
    <p class="dropdown-option">NAM 12km</p> 
 
    <p class="dropdown-option">RAP</p> 
 
    <p class="dropdown-option">SREF</p> 
 
    <p class="dropdown-option last-option">HIRESW</p> 
 
    </div> 
 
</div>