1. Уважаемые пользователи, прежде чем ответить в теме или создать новую, внимательно ознакомьтесь с Правилами раздела
    Скрыть объявление

[Помогите] Фиксирование кнопки на адаптивном блоке по середине видимой высоты экрана

Тема в разделе "Вёрстка (HTML, CSS)", создана пользователем AlexGood, 12 ноя 2019.

  1. AlexGood

    AlexGood

    Регистрация:
    28 ноя 2016
    Сообщения:
    254
    Симпатии:
    7
    http://test3.dtraduga.vh66.hosterby.com/moneyback.php# - смотреть на 2560
    У меня есть кнопка которая открывает и закрывает таблицу: http://prntscr.com/pw0ov0
    непонимаю как привязать кнопку к краю таблицы?
    таблица меняет ширину при открытии и закрытии
    сделать position:fixed и top:50% она по центру экрана становится и при скроле остается на своем месте но при смене ширины таблицы она не фиксируется по краю таблицы
    как решить данную проблему?

    если сделать вот так: http://prntscr.com/pw0xod - она вроде как привязана - но при скролле не фиксируется ((
     
    Последнее редактирование: 12 ноя 2019
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Конечно не фиксируется: абсолютное позиционирование привязывает к конкретной точке в странице, а не к позиции на экране.

    Надо использовать position: sticky!
     
    AlexGood нравится это.
  3. AlexGood

    AlexGood

    Регистрация:
    28 ноя 2016
    Сообщения:
    254
    Симпатии:
    7
  4. AlexGood

    AlexGood

    Регистрация:
    28 ноя 2016
    Сообщения:
    254
    Симпатии:
    7
    а как быть при таком случае если мне надо при клике повернуть кнопку на 180 градусов находясь на одном и том же месте?
    Если вот так делать
    transform: rotate(180deg); - то она улетает от края таблицу на другую сторону через весь экран((( - http://prntscr.com/pwchvwhttp://prntscr.com/pwchvw
     
  5. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Она это делает из-за того, что у классов состояния кнопки разное позиционирование.

    Ничего улетать не будет, если стили одинаковые!
     
    AlexGood нравится это.
  6. AlexGood

    AlexGood

    Регистрация:
    28 ноя 2016
    Сообщения:
    254
    Симпатии:
    7
    сейчас проверю.. хотя вроде все одинаково было
    --- Добавлено, 14 ноя 2019 ---
    вот у меня 2 состояния: http://prntscr.com/pwrryk
    все одинаково - но при клике стрелка не поворачивается на 180 а перелетает на другую сторону экрана (((
     
  7. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Я сейчас там вижу fixed, а не sticky (кеш чистил).
     
  8. AlexGood

    AlexGood

    Регистрация:
    28 ноя 2016
    Сообщения:
    254
    Симпатии:
    7
    а так я локально пробовал.... залить куда-нить? там старое все
    я прям там тоже пробовал... ставлю sticky и тоp 50% в двух состояниях и при перевороте стрелка улетает через весь экран(
    --- Добавлено, 14 ноя 2019 ---
    перезалил по тойже ссылке
     
  9. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Вы будто с чужим кодом работаете.

    Вот ваши другие стили:
    Код:
    btnToggleTable.click(function () {
            let leftSide = $('#leftSide');
            let rightSide = $('#rightSide');
            if (!isTableOpen) {
                btnToggleTable.addClass('second-state-of-the-button');
                btnToggleTable.removeClass('first-state-of-the-button');
                rightSide.css({
                    position: 'absolute',
                    right: '2%'
                })
                rightSide.animate({
                    width: '95%'
                }, 500, function () {
                    leftSide.css({
                        display: 'none'
                    })
                    rightSide.css({
                        position: 'relative',
                        right: '0',
                        width: '100%'
                    })
                    callback();
                });
    И перестаньте уже наконец пытаться использовать js там, где нужен только CSS!

    От js в данном случае требуется только класс на кнопку навесить и больше ничего! Остальное надо делать в CSS.
     
    AlexGood нравится это.
  10. AlexGood

    AlexGood

    Регистрация:
    28 ноя 2016
    Сообщения:
    254
    Симпатии:
    7
    я перезалил новый js и немного не понял как с вашим объединить - вроде как все одинаково (( но не работает
     
  11. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Ничего не надо объединять!
    Вы внимательно прочитали то, что я написал под этим куском кода?

    Вы либо это не прочитали, либо вообще не понимаете, что делает тот код.

    У вас все стили должны быть исключительно в CSS! js должен только навешивать классы, чтоб эти стили применились.
    Это касается и анимации самой таблицы.
     
    AlexGood нравится это.
  12. AlexGood

    AlexGood

    Регистрация:
    28 ноя 2016
    Сообщения:
    254
    Симпатии:
    7
    Я понимаю из вашего пояснения что мне надо вот так делать? - http://prntscr.com/pxnx2u
    и тогда оно будет работать?... по сути это будет тоже самое только при помощи css
     
  13. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Да (правильность кода не проверял, но логика правильная).

    И да, анимация в данном случае - это транзишн для ширины. Но прописывать его нужно в основные свойства блока, потому что если навешивать его при смене состояния, то при возврате к дефолтному оно не будет работать (класс отрубится).
     
    AlexGood нравится это.