• Стоит ли менять старое нетематическое название сайта на совершенно новое тематическое?

    @BLM21 Автор вопроса
    В любом случае, сердечно признателен за ответ. На подобные мысли о красивости имени я наткнулся чуть раньше сегодня при сёрфинге по разным запросам. А тут прям дежавю.
    Ответ написан
    Комментировать
  • Можно ли в разместить в шапке шесть якорных ссылок, ведущих на якори одной и той же страницы с разными анкорами?

    @BLM21 Автор вопроса
    Adamos - аккаунт классного человека, который скромно в комментариях к вопросу дал ясные чёткие пояснения и весьма убедительный ответ: кнопку раздела - ссылкой на прайс, при наведении на которую уже будет выпадать список из якорных ссылок.
    Ответ написан
    Комментировать
  • Почему в конце og:url для главной добавляется в конце два слэша?

    @BLM21 Автор вопроса
    По пути core/config в файле config.inc.php изменил этот код
    if (!defined('MODX_SITE_URL')) {
        $site_url= $url_scheme . $http_host . MODX_BASE_URL;
        define('MODX_SITE_URL', $site_url);
    }


    на этот код
    if (!defined('MODX_SITE_URL')) {
        $site_url= $url_scheme . $http_host;
        define('MODX_SITE_URL', $site_url);
    }


    Сразу исчез двойной слэш.

    Теперь осталось подумать, как сделать, чтобы на конце ссылки КОНКРЕТНО главной страницы не было слэша вообще. На данный момент <link rel="canonical" href="https://mysite.com/">, а я хочу <link rel="canonical" href="https://mysite.com">
    Ответ написан
    Комментировать
  • Знает ли кто-нибудь, как отвязать открытие кнопки формы от ID? Или как делать нелимитированное количество разных кнопок формы для сайта?

    @BLM21 Автор вопроса
    Этот рабочий ответ посвящаю Ankhena, известную в тесных кругах, как Бог JS.

    И безлимитное количество кнопок, вызывающих модальное окно БЕЗ ПРИВЯЗКИ к ID # , и работает всё корректно, и даже +7 для Telegram теперь работает исправно.

    $(function(){
    	$("#phone").mask("+7 (999) 999-99-99");
      });
    
    
    $(document).ready(function () {
        $(".form-element").submit(function () {
            var formID = $(this).attr('ID');
            var formNm = $('#' + formID);
            var message = $(formNm).find(".form-message");
            var formTitle = $(formNm).find(".form-title");
            $.ajax({
                type: "POST",
                url: 'https://blm21.com/callback-form/telegramform/php/send-message-to-telegram.php',
                data: formNm.serialize(),
                success: function (data) {
                  // Вывод сообщения об успешной отправке
                  message.html(data);
                  formTitle.css("display","none");
    			    $('input','.form-element').not(':input[type=submit], :input[type=hidden], :reset').val('');
    				$(".form-element input[type=submit]").attr('disabled','disabled');
                  /* setTimeout(function(){
                    formTitle.css("display","block");
                    message.html('');
                    $(".form-element input[type=submit]").attr('enabled','enabled');				
                  }, 30000); */
                },
                error: function (jqXHR, text, error) {
                    // Вывод сообщения об ошибке отправки
                    message.html(error);
                    formTitle.css("display","none");
                    setTimeout(function(){
                      formTitle.css("display","block");
                      message.html('');
                      $('input').not(':input[type=submit], :input[type=hidden]').val('');
                    }, 3000);
                }
            });
            return false;
        });	
    	
    });
    
    
      var modal = document.querySelector("#modal"),
    	  closeButton = document.querySelector("#close-button");
    
      closeButton.addEventListener("click", function() {
    	modal.classList.toggle("closed");
    	modalOverlay.classList.toggle("closed");
      });
    
      const  openButtons = document.querySelectorAll(".modal-btn");
      
      openButtons.forEach(btn=> {
        btn.addEventListener("click", () => {
           modal.classList.toggle("closed");
           modalOverlay.classList.toggle("closed");
        });
    })
    
      const  modalOverlay = document.querySelector(".modal-overlay");
    
      modalOverlay.forEach(btn=> {
        modalOverlay.addEventListener("click", () => {
           modal.classList.toggle("closed");
           modalOverlay.classList.toggle("closed");
        });
    })
    Ответ написан
    Комментировать
  • Как кэшировать background (фоновую картинку сайта)?

    @BLM21 Автор вопроса
    Ответ нашёл сам.

    .htaccess содержал ещё такой код:

    <IfModule mod_rewrite.c>
         RewriteEngine On
         RewriteCond %{HTTP_ACCEPT} image/webp
         RewriteCond %{REQUEST_URI}  (.*)(\.(jpe?g|png))$
         RewriteCond %{DOCUMENT_ROOT}/%1\.webp -f
         RewriteRule .* %1\.webp [L,T=image/webp]
     </IfModule>
     <IfModule mod_headers.c>
         Header append Vary Accept env=REDIRECT_accept
     </IfModule>
     <IfModule mod_mime.c>
       AddType image/webp .webp
     </IfModule>


    Великий ThunderCat навёл на верные мысли, дав понять, что всё правильно в .htaccess, что должно действовать правило жизни кэша, поэтому надо копать, как вариант - в расширение файла background.
    Но так как расширение верное, копать пришлось глубже, и код выше дал понять, что в правило не дописано расширение .webp
    Стоило дописать в правило жизни кэша webp, и стала вот такая красота (на скрине), и это по мобильной версии, а для десктопа - вообще сотка. Признателен всем знатокам за участие, включая Adamos за критику.

    6152d0ec5014a338947725.jpeg
    Ответ написан
    Комментировать
  • Как поправить код CSS для подменю?

    @BLM21 Автор вопроса
    Сделал сам. Забирайте, пользуйтесь красивым готовым элементом, список которого можно увеличить запросто новыми ul ниже.
    Теперь попробую переименовать в меню.

    <ul id="nav">
     <li>
     <a class="direct-link" href="/">Ссылка 1</a>
            <ul>
                     <li><a href="/">Ссылка1</a></li>
                     <li><a href="/">Ссылка2</a></li>
            </ul>
    
     </li>
    </ul>
    
    <style>
    
    #nav{
        display: table;
        margin: 0 auto;
        list-style:none;
        margin-bottom:10px;
        white-space:nowrap;
        position:relative;
    }
    
    #nav li{
        float:left;
        margin-right:10px;
        position:relative;
        display:block;
    }
    ul {
        /* Убираю маркеры у списка*/
        list-style: none;
        /* Делаю элементы блочными. */
        display: block;
        /* Убираю отступы. */
        margin: 0;
        /* Убираю еще отступы! */
        padding:0px;
    }
    ul:after {
        /* Делаю элементы блочными. */
        display: block;
        /* Убираю выравнивание. */
        float: none;
        content: ' ';
        clear: both;
    }
    #nav li a{
        display:block;
        padding:5px;
        text-decoration:none;
        
        -moz-border-radius:2px;
        -webkit-border-radius:2px;
        border-radius:2px;
    }
    #nav li a:hover{
        color:#fff;
        background:#6b0c36;
        background:rgba(107,12,54,0.75); /* Выглядит полупрозрачным */
        text-decoration:underline;
    }
     
    /*--- ВЫПАДАЮЩИЕ ПУНКТЫ ---*/
    #nav ul{
        list-style:none;
        position:absolute;
        left:-9999px; /* Скрываем за экраном, когда не нужно (данный метод лучше, чем display:none;) */
        opacity:0; /* Устанавливаем начальное состояние прозрачности */
        -webkit-transition:0.25s linear opacity; /* В Webkit выпадающие пункты будут проявляться */
    }
    #nav ul li{
        padding-top:1px; /* Вводим отступ между li чтобы создать иллюзию разделенных пунктов меню */
        float:none;
        background:url(dot.gif);
    }
    #nav ul a{
        white-space:nowrap; /* Останавливаем перенос текста и создаем многострочный выпадающий пункт */
        display:block;
    }
    #nav li:hover ul{ /* Выводим выпадающий пункт при наведении курсора */
        left:0; /* Приносим его обратно на экран, когда нужно */
        opacity:1; /* Делаем непрозрачным */
    }
    #nav li:hover a{ /* Устанавливаем стили для верхнего уровня, когда выводится выпадающий список */
        background:#6b0c36;
        background:rgba(107,12,54,0.75); /* Выглядит полупрозрачным */
        text-decoration:underline;
    }
    #nav li:hover ul a{ /* Изменяем некоторые стили верхнего уровня при выводе выпадающего пункта */
        text-decoration:none;
        -webkit-transition:-webkit-transform 0.075s linear;
    }
    #nav li:hover ul li a:hover{ /* Устанавливаем стили для выпадающих пунктов, когда курсор наводится на конкретный пункт */
        background:#333;
        background:rgba(51,51,51,0.75); /* Будет полупрозрачным */
        text-decoration:underline;
        -moz-transform:scale(1.05);
        -webkit-transform:scale(1.05);
    }
    
    </style>


    И вот над меню постарался , держите код красивого меню, в которое можете подставлять просто свои заголовки и ссылки .

    <ul class="menu-main">
     <li>
     <a class="direct-link" href="/">Ссылка 1</a>
            <ul>
                     <li><a href="/">Ссылка1</a></li>
                     <li><a href="/">Ссылка2</a></li>
            </ul>
    
     </li>
    </ul>
    
    <style>
    
    .menu-main {
        display: table;
        margin: 0 auto;
        list-style:none;
        margin-bottom:10px;
        white-space:nowrap;
        position:relative;
    }
    
    .menu-main li{
        float:left;
        margin-right:10px;
        position:relative;
        display:block;
    }
    ul {
        /* Убираю маркеры у списка*/
        list-style: none;
        /* Делаю элементы блочными. */
        display: block;
        /* Убираю отступы. */
        margin: 0;
        /* Убираю еще отступы! */
        padding:0px;
    }
    ul:after {
        /* Делаю элементы блочными. */
        display: block;
        /* Убираю выравнивание. */
        float: none;
        content: ' ';
        clear: both;
    }
    .menu-main li a{
        display:block;
        padding:5px;
        text-decoration:none;
        
        -moz-border-radius:2px;
        -webkit-border-radius:2px;
        border-radius:2px;
    }
    .menu-main li a:hover{
        color:#fff;
        background:#6b0c36;
        background:rgba(107,12,54,0.75); /* Выглядит полупрозрачным */
        text-decoration:underline;
    }
     
    /*--- ВЫПАДАЮЩИЕ ПУНКТЫ ---*/
    .menu-main ul{
        list-style:none;
        position:absolute;
        left:-9999px; /* Скрываем за экраном, когда не нужно (данный метод лучше, чем display:none;) */
        opacity:0; /* Устанавливаем начальное состояние прозрачности */
        -webkit-transition:0.25s linear opacity; /* В Webkit выпадающие пункты будут проявляться */
    }
    .menu-main ul li{
        padding-top:1px; /* Вводим отступ между li чтобы создать иллюзию разделенных пунктов меню */
        float:none;
        background:url(dot.gif);
    }
    .menu-main ul a{
        white-space:nowrap; /* Останавливаем перенос текста и создаем многострочный выпадающий пункт */
        display:block;
    }
    .menu-main li:hover ul{ /* Выводим выпадающий пункт при наведении курсора */
        left:0; /* Приносим его обратно на экран, когда нужно */
        opacity:1; /* Делаем непрозрачным */
    }
    .menu-main li:hover a{ /* Устанавливаем стили для верхнего уровня, когда выводится выпадающий список */
        background:#6b0c36;
        background:rgba(107,12,54,0.75); /* Выглядит полупрозрачным */
        text-decoration:underline;
    }
    .menu-main li:hover ul a{ /* Изменяем некоторые стили верхнего уровня при выводе выпадающего пункта */
        text-decoration:none;
        -webkit-transition:-webkit-transform 0.075s linear;
    }
    .menu-main li:hover ul li a:hover{ /* Устанавливаем стили для выпадающих пунктов, когда курсор наводится на конкретный пункт */
        background:#333;
        background:rgba(51,51,51,0.75); /* Будет полупрозрачным */
        text-decoration:underline;
        -moz-transform:scale(1.05);
        -webkit-transform:scale(1.05);
    }
    
    </style>
    Ответ написан
    Комментировать
  • Почему показатель Core не растёт при нагрузке?

    @BLM21 Автор вопроса
    Всё чушь. Выявил парадокс лютый. Дело не в кабелях. Дело в следующем.

    Чтоб видеокарта работала корректно, приходить делать так:
    1) включил комп
    2) запустил видео крайне высокого качества
    3) запустил GPU-Z
    4) жду, пока показатель GPU temperature достигнет хотя бы 46° по Цельсию
    5) выключаю ПК до полного выключения и остановки вентиляторов
    6) отсчитываю не менее 11 секунд
    7) на 12 секунде включаю ПК

    Только при таком раскладе карта нормально работает и бустится. Если что-то из семи пунктов нарушено при выполнении, карта корректно не будет работать, придётся повторять эту же операцию КОРРЕКТНО.

    Вот такие дела. Несколько дней ушло до найденного ответа методом перебора нестандартным мышлением. Фокус, что комп завёлся с кабелем как-то - это совпадение, при котором соблюлись 7 пунктов, указанных выше.

    Трабл в видеокарте, продали новую в KNS , оказалась б/у, и даже болтов не хватает. Цепь питания нарушена, видимо. Но хорошего пайщика нет, а другие разведут по полной. Потому так и живу. На включение компа уходит пять минут, чтобы завелась карта нормально. Благо, я включаю комп раз в день - утром.
    Ответ написан
    3 комментария