Как сделать скрытый показ боковой панели при наведении

Итак, у меня есть скрытая боковая панель, которая появляется, если я нажимаю кнопку, чтобы открыть ее.

это на HTML:

    <div id="mySidenav" class="sidenav">
      <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
      <a href="#">Home</a>
      <a href="#">About</a>
      <a href="#">News</a>
      <a href="#">Contact</a>
   </div>

это на css:

/* The side navigation menu */
.sidenav {
    height: 100%;
    width: 0;
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    background-color: #111;
    overflow-x: hidden;
    padding-top: 60px;
    transition: 0.5s;
}

/* The navigation menu links */
.sidenav a {
    padding: 8px 8px 8px 32px;
    text-decoration: none;
    font-size: 25px;
    color: #818181;
    display: block;
    transition: 0.3s
}

.sidenav a:hover, .offcanvas a:focus{
    color: #f1f1f1;
}

.sidenav .closebtn {
    position: absolute;
    top: 0;
    right: 25px;
    font-size: 36px;
    margin-left: 50px;
}

#main {
    transition: margin-left .5s;
    padding: 20px;
}

@media screen and (max-height: 450px) {
    .sidenav {padding-top: 15px;}
    .sidenav a {font-size: 18px;}
}

это код JavaScript:

<script type="text/javascript">
        /* Set the width of the side navigation to 250px and the left margin of the page content to 250px and add a black background color to body */
        function openNav() {
            document.getElementById("mySidenav").style.width = "250px";
            document.getElementById("contoh").style.marginLeft = "250px";
            document.body.style.backgroundColor = "rgba(0,0,0,0.4)";
        }

        /* Set the width of the side navigation to 0 and the left margin of the page content to 0, and the background color of body to white */
        function closeNav() {
            document.getElementById("mySidenav").style.width = "0";
            document.getElementById("contoh").style.marginLeft = "0";
            document.body.style.backgroundColor = "white";
        }
    </script>

у меня вопрос, как поменять кнопку Открыть, чтобы зависать и отображать полную боковую панель. Как и в боковой панели этого сайта: https://la24.org/games-concept большое спасибо раньше.

3 ответа

Решение

@OP, Да, вы должны указать ширину на панели навигации. Так же, как и навигационная панель в ссылке, которую вы предоставили. Нет необходимости использовать JavaScript, чтобы открыть его. Вы можете сделать это с помощью простого CSS:

.sidenav {
   height: 100%;
   width: 50px; /* Put some width to hover on. */
}

/* ON HOVER */
.sidenav:hover{
   width: 250px;
}

/* The side navigation menu */
.sidenav {
    height: 100%;
    width: 50px;
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    background-color: #111;
    overflow-x: hidden;
    padding-top: 60px;
    transition: 0.5s;
}

/* ON HOVER */
.sidenav:hover{
   width: 250px;
}

/* The navigation menu links */
.sidenav a {
    padding: 8px 8px 8px 32px;
    text-decoration: none;
    font-size: 25px;
    color: #818181;
    display: block;
    transition: 0.3s
}

.sidenav a:hover, .offcanvas a:focus{
    color: #f1f1f1;
}

.sidenav .closebtn {
    position: absolute;
    top: 0;
    right: 25px;
    font-size: 36px;
    margin-left: 50px;
}

#main {
    transition: margin-left .5s;
    padding: 20px;
}
<div id="mySidenav" class="sidenav">
      <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
      <a href="#">Home</a>
      <a href="#">About</a>
      <a href="#">News</a>
      <a href="#">Contact</a>
</div>

Вы можете попробовать метод наведения мыши и метод наведения мыши в jQuery, чтобы решить эту проблему.

Например:

$("#mySidenav").mouseover(function(){ //Your code here. })

а также

$("#mySidenav").mouseout(function(){ //Your code here. })

You can implement using CSS also without writing javascript code. See below the code. 

<div class="parent">
        <button class="dropbtn">Dropdown</button>
        <div id="mySidenav" class="sidenav">
        <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
        <a href="#">Home</a>
        <a href="#">About</a>
        <a href="#">News</a>
        <a href="#">Contact</a>
        </div>
   </div>


.parent {
    position: relative;
    display: inline-block;
}

.parent:hover  .sidenav {
    display:block;
}


In the code mentioned by Dang Khoa, you have to include the button in side navigation or implement the onMouseHover on your button id.
Другие вопросы по тегам