1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Как создать кнопку вверх?

Тема в разделе "Основные вопросы по XenForo", создана пользователем qaswertgyhjk, 17.02.2018.

Загрузка
  1. qaswertgyhjk

    qaswertgyhjk Пользователь

    Регистрация:
    05.10.17
    Сообщения:
    22
    Симпатии:
    1
    Версия XF:
    1.0.2
    вот есть эти коды, но они не дают результата, просто не отображается, хотя добавлены в header и extra.css
    HTML:
    <script>
            // объявим переменные
            var bottom_position = 0; // положение страницы
            var flag_bottom = false; // флаг, для отображения кнопки "назад"
            var flag_animate = false;// Флаг, определяющий, выполнение анимации
     
            $(document).ready(function(){
                // клик по кнопке вверх/назад
                $('.in_top').click(function(){
                    // поднимаем флаг, началась выполнениние анимации
                    flag_animate = true;
                    // если на данный момент кнопка "назад"
                    if(flag_bottom){
                        // то скролим страницу в нужное место
                        $("body,html").animate({"scrollTop":bottom_position}, 300, function(){
                            // опускаем влаг анимации, она закончилась
                            flag_animate = false;
                        });
                        // меняем кнопку
                        flag_bottom = false;
                        $('.topo').html('↑ Наверх ↑');
                    }else{
                        // если кнопка "вверх"
                        $("body,html").animate({"scrollTop":0}, 300, function(){
                            flag_animate = false;
                        }); 
                      
                    }
                });
      
                // делаем проверку при скролле
                $(window).scroll(function(event){
                    var countScroll = $(window).scrollTop();
                    // если прокрутили больше 100 пикселей и анимация не выполняется, то показываем кнопку
                    if (countScroll > 100 && !flag_animate){
                        $('.in_top').show();
                        if(flag_bottom){
                            flag_bottom = false;
                            $('.in_top span').html('↑ Наверх ↑');
                        }
                    // иначе прячем кнопку, если это не кнопка "назад"
                    }else{
                        if(!flag_bottom){
                            $('.in_top').hide();
                        }
                    }
                });
            });
        </script>
    Код:
    .topo {
        width: 60px;
        height: 100%;
        background: rgb(28, 28, 28) url(https://lolzteam.net/public/cd-top-arrow.svg) no-repeat center 50%;
    }
    
    .in_top{
                position: fixed;
                left: 0px;
                top: 0px;
                width: 60px;
                height: 100%;
                filter: alpha(opacity=50);
                cursor: pointer;
                display: none;
            }
            .in_top:hover{
                background-color: rgb(28, 28, 28);
                opacity: 1;
                    transition: opacity .2s 0s, visibility 0s 0s;
            }
            .in_top span{
                display: block;
                width: 100px;
                margin-top: 600%;
                text-align: center;
                color: #45688E;
                font-weight: bold;
            }
            
            .in_toptop{
               background: rgb(0, 0, 0) url(https://lolzteam.net/public/cd-top-arrow.svg) no-repeat center 50%; background: rgb(0, 0, 0) url(https://lolzteam.net/public/cd-top-arrow.svg) no-repeat center 50%; background: rgba(0, 0, 0, 0.66) url(https://lolzteam.net/public/cd-top-arrow.svg) no-repeat center 50%;
        position: fixed;
        bottom: 0;
        display: block;
        left: 0;
        overflow: hidden;
        text-indent: 100%;
        white-space: nowrap;
        visibility: hidden;
        opacity: 0;
        transition: opacity .3s 0s, visibility 0s .3s;
        width: 60px;
        height: 100%;
            }
     
            #content{
                width: 100%;
                margin: 0 auto;
            }
            
     
  2. Shimikami

    Shimikami Местный

    Регистрация:
    23.02.17
    Сообщения:
    246
    Симпатии:
    112
    Добрый вечер, вот собрал в дополнение.
    Демонстрация:
    [​IMG]
     

    Вложения:

    • ScrollTop.zip
      Размер файла:
      1,8 КБ
      Просмотров:
      6
    qaswertgyhjk нравится это.
  3. qaswertgyhjk

    qaswertgyhjk Пользователь

    Регистрация:
    05.10.17
    Сообщения:
    22
    Симпатии:
    1
    Версия XF:
    1.0.2
    большое спасибо, вопрос решен.
     
    Shimikami нравится это.
  4. Shimikami

    Shimikami Местный

    Регистрация:
    23.02.17
    Сообщения:
    246
    Симпатии:
    112
    Не за что, как раз много где добавлял.
    Если что, шаблоны называются
     
  5. qaswertgyhjk

    qaswertgyhjk Пользователь

    Регистрация:
    05.10.17
    Сообщения:
    22
    Симпатии:
    1
    Версия XF:
    1.0.2
    а как скрыть при маленьком размере экрана? допустим для мобильников
     
  6. Shimikami

    Shimikami Местный

    Регистрация:
    23.02.17
    Сообщения:
    246
    Симпатии:
    112
    С помощью CSS, как мини-пример:
    Код:
    <xen:if is="@enableResponsive">
    @media (max-width:@maxResponsiveWideWidth)
    {
    .in_top {
    display: none;
    }
    }
    </xen:if>
    Но лучше добавить респонсив перед классом, плюс ещё подправить условия.
     

Поделиться этой страницей