Как сделать плавающую вбок кнопку?

Есть боковой скрываемый сайдбар. Нужно сделать так, чтобы при нажатии на кнопку открытия, кнопка двигалась с панелью и ровнялась с её левым краем. А после, повторным нажатием на кнопку сайдбар скрывался и кнопка занимала исходное положение.

<button class="openbtn float-block" onclick="openNav()"></button>

<div id="mySidepanel" class="sidepanel">
    <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
    <a href="#" class="button_1 button_0">Кнопка</a>
</div>

<style>
    /* Стиль кнопка, которая используется для открытия боковой панели */
    .openbtn {
        cursor: pointer;
        background-color: #00AEEF;
        padding: 25px 25px;
        border: none;
        position: fixed;
        right: 20px;
        top: 20px;
        /*border: 1px solid black;*/
    }

    .openbtn:hover {
        background-color: #00AEEF;
    }

    /* настройки плавающего блока */
    .float-block {
        position: absolute;
        top: 20px;
        right: 20px;
    }

    /* Меню боковой панели */
    .sidepanel {
        background: rgba(217, 217, 217, 0.5);
        height: 100%; /* Укажите высоту */
        width: 0; /* 0 ширина-измените это с помощью JavaScript */
        position: fixed; /* Оставаться на месте */
        z-index: 1; /* Оставайтесь на вершине */
        top: 0;
        right: 0;
        overflow-x: hidden; /* Отключить горизонтальную прокрутку */
        padding: 60px 0 0; /* Поместите содержимое 60px сверху */
        transition: 0.5s; /* 0.5 секунды эффект перехода для скольжения в боковой панели */
    }

    .sidepanel:hover {
        overflow-y: scroll;
    }

    /* Боковая панель ссылок */
    .sidepanel a {
        padding: 8px 15px 8px 15px;
        text-decoration: none;
        color: white;
        display: block;
        transition: 0.3s;
    }

    /* При наведении курсора мыши на навигационные ссылки измените их цвет */
    .sidepanel a:hover {
        color: gray;
    }

    /* Положение и стиль кнопки закрытия (верхний правый угол) */
    .sidepanel .closebtn {
        position: absolute;
        top: 0;
        right: 25px;
        font-size: 50px;
        margin-left: 50px;
        color: black;
    }

    .button_0 {
        border-radius: 25px;
        margin: 0 10px 5px;
        opacity: 1;
        text-align: center;
        font-size: 25px;
    }

    .button_1 { /* Кнопка HR */
        background-color: #151741;
    }
</style>

<script>
    // Закрытие панели с кнопками
    function closeNav() {
        document.getElementById("mySidepanel").style.width = "0px";
    }

    // Медиа запрос
    function openNav() {
        var mql = window.matchMedia('all and (max-width: 768px)');

        function handleMatchMedia(mediaQuery) {
            if (mediaQuery.matches) {
                document.getElementById("mySidepanel").style.width = "250px";
            } else {
                document.getElementById("mySidepanel").style.width = "400px";
            }
        }

        handleMatchMedia(mql);

        // Вместо обработчика изменения медиа-запроса, используем setTimeout
        setTimeout(function () {
            handleMatchMedia(mql);
        }, 0);

        // Отслеживаем изменения медиа-запроса
        mql.addListener(handleMatchMedia);
    }
</script>

пробовал делать так, но не получилось:

  // «Липкий» код
    $(function () {
        $.fn.followTo = function (pos) {
            var $this = this,
                $window = $(window);

            $window.scroll(function (e) {
                if ($window.scrollTop() > pos) {
                    $this.css({
                        position: 'fixed',
                        right: 20
                    });
                } else {
                    $this.css({
                        position: 'absolute',
                        right: 400
                    });
                }
            });
        };

        $('.float-block').followTo(140);
    });

Ответы (1 шт):

Автор решения: budaPest

если у вас кнопка имеет фиксированную позицию он и не будет двигаться, я бы кнопку расположил внутри обертки сайдбара с минусовым margin и зафиксировать его,

→ Ссылка