Сдейлай добро - напиши информацию о рос. войсках в телеграм @evorog_bot

GRAVITSAPA.INFO

Компьютеры, электроника, софт, авто, мото, вело, сайты, жизнь, советы :)

Задонатити ₴
Темний режим

Посты категории: Создание сайтов

Делаем простенькую но эффективную кнопку “Наверх” для сайта с плавной прокруткой

Я не автор этого кода, нашел в сети, мне очень понравилась. Поэтому решил использовать на сайте Gravitsapa.info, тут же можно посмотреть как она работает. Но изобретать тут особо и нечего… Код не нагружает сайт, прокрутка вверх отрабатывает без ошибок и тормозов. Легко модернизировать в более сложный функционал, или накинуть других параметров. Протестировано на смартфоне, в адаптивный дизайн вписывается отлично. И ещё, если у вас есть длинные страницы или статьи, рекомендую использовать эту кнопку без сомнений!

Что бы у Вас на сайте заработала такая прекрасная кнопка “Наверх” с плавной прокруткой, выполните простую инструкцию:

  1. Между <head></head> вставляем этот код:
    <script type="text/javascript">
    $(function() {
    $(window).scroll(function() {
    if($(this).scrollTop() != 0) {
    $('#toTop').fadeIn();
    } else {
    $('#toTop').fadeOut();
    }
    });
    $('#toTop').click(function() {
    $('body,html').animate({scrollTop:0},800);
    });
    });
    </script>
  2. Прямо перед </body> вставляем этот код:
    <div id="toTop" >Наверх</div>
  3. В файле стилей .css вставляем этот код (цвета и другие стили можно изменить на свои):
    #toTop {
    width: 70px;
    background: #2487ca9c;
    text-align: center;
    padding: 5px;
    position: fixed;
    bottom: 20px;
    left: 15px;
    cursor: pointer;
    display: none;
    color: #fff;
    height: 20px;
    vertical-align: middle;
    }

Теперь и у Вас на сайте эта прекрасная полезная кнопочка, которой бывает очень не хватает. Делитесь статьёй в соц. сетях 😉 Спасибо!

Простой адаптивный Lightbox изображений для WordPress без плагинов

Подключать будем библиотеку отсюда. Там же можно посмотреть demo. Называется Lightbox2 от разработчика Lokesh Dhakar. Достаточно простое решение, не перегруженное, изображения в лайтбоксе будут адаптироваться под любые размеры мониторов на любых мобильных устройствах.

Так же отмечу, что из всех js плагинов лайтбоксов, которые уже протестировал, у этого варианта, по моему мнению, достаточно высокое быстродействие. По сути на скорость загрузки страницы не влияет, а это является не маловажным фактором.

Итак, делаем всё по инструкции для подключения Lightbox изображений в Вашей теме WordPress:

  1. Скачиваем и распаковываем архив с файлами Лайтбокса.
  2. Ищем папку “src”, в ней есть три папки, которые нужно скопировать в корень папки Вашего шаблона WordPress.
  3. Затем в файле header.php между нужно подключить файлы Лайтбокса вот так:
    <link rel="stylesheet" type="text/css" href="<?php bloginfo('template_url'); ?>/css/lightbox.css">
    <script src="<?php bloginfo('template_url'); ?>/js/lightbox.js"></script>
  4. После этого в файл functions.php нужно вставить этот код:
    <?php
    add_filter('the_content', 'addrellightbox');
    function addrellightbox($content) {
    global $post;
    $pattern ="/<a(.*?)href=('|")(.*?).(bmp|gif|jpeg|jpg|png)('|")(.*?)>/i";
    $replacement = '<a$1href=$2$3.$4$5 data-lightbox="image"$1 title="'.$post->post_title.'"$6>';
    $content = preg_replace($pattern, $replacement, $content);
    return $content;
    }
    ?>
  5. Изображения в посты нужно вставлять как медиафайл:

Теперь у Вас есть красивый, простой, адаптивный Lightbox для изображений 😉 Пишите комменты, делитесь статьёй в соц. сетях.

Делаем адаптивными видео с Youtube для любого сайта без лишних блоков и без CSS кода

В некоторых статьях блога Gravitsapa.info присутствую видео с Youtube, которые вставлены самым обычным способом:

Видео вставленное на сайт просто с таким кодом не является адаптивным. На мобильных устройствах будет выходить за рамки экрана. В интернетах находил решение, где данный iframe помещают в div контейнер с любым классом и задают css стили для адаптивности. Но мне такое решение не понравилось, так как если на сайте уже присутствует множество встроенных видео с Ютуба, то слишком трудоёмко будет каждое оборачивать в div блок. Поэтому был написан простенький скрипт, который находит на странице такое видео и задаёт ему ширину 100% вместо фиксированной ширины.

Для моего сайта скрипт выглядит следующим образом:
<script>
$(document).ready(function() {
var vidos = $('article iframe'); //article текущий блок в котором iframe
vidos.attr('width','100%');
});
</script>

Вставить его можно между <head>…</head>

Этот скрипт подходит для любого другого сайта. Нужно лишь “article” заменить на класс или ид того блока, где находится iframe. Например, если код будет выглядеть так:
<div class="post"><iframe width="560" height="315" src="https://www.youtube.com/embed/2Vo0lhfE8Jo" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe></div>
…то в скрипте вместо article iframe нужно написать .post iframe
Таким образом редактировать ничего не нужно, никакими дополнительными div блоками оборачивать видео ненужно и писать дополнительные CSS стили тоже не нужно. Решение простое и универсально, за это спасибо программисту от бога @only_darkangel (Телеграм).

Смотреть полностью

Используя нативный JavaScript исправляем определённую часть текста

Данное задание размещено на одном из крупнейших ресурсов СНГ в качестве теста на фронтендщика…

Итак! Имеем блок с текстом:
<div class="example">Дважды <span>два</span> - пять</div>

Задание изложено следующим образом:
Дан фрагмент HTML. Используя только нативный JavaScript исправьте текст, следующий после тега <span> так, чтобы элемент <span> остался незатронутым.

Решение данной задачи следующее:
<script>
document.getElementsByClassName('example')["0"].childNodes[2].textContent = " - шесть";
</script>

И короткое разъяснение кода для понимания того, что происходит:

  1. document – наша страничка
  2. .getElementsByClassName('example') – выбираем содержимое контейнера с классом example
  3. ["0"] – имеем массив содержимого контейнера, и нам нужен его первый элемент
  4. .childNodes – в этом объекте находятся дочерние элементы, их трое: текст до спана, спан, текст после спана.
  5. [2] – выбираем текст после спана
  6. .textContent = " – шесть" – присваиваем этому элементу свой текст

Автор решения @only_darkangel (Telegram).
Спасибо за внимание 😉

Почему может не работать стиль transition-delay?

Итак, имеем менюху с выпадающими списками. В стилях это реализовано как display: none по умолчанию для подменю. И display: block для подменю при hover на основное меню.

Хотим сделать анимацию и задержку появления меню. Используем стиль transition с параметрами или просто стиль паузы transition-delay. Но из-за того, что подменю изначально назначено display: none, то transition работать не будет.

Для этого вместо display: none и display: block будем использовать opacity: 0; visibility: hidden; и opacity: 1; visibility: visible;.

Пример реализации можно посмотреть тут.

Простой Progress Bar на JQury как на YouTube

  1. Создаем файл progress.js, помещаем его в удобную папку на сайте и подключаем на всех страницах между <head></head> вот так <script src="полный_адрес_к_файлу/progress.js"></script>
  2. В файл progress.js вставляем этот код:
    $(function() {
    var $progress = $('#progress');
    $(document).ajaxStart(function() {
    if ($progress.length === 0) {
    $progress = $('<div><dt/><dd/></div>').attr('id', 'progress');
    $("body").append($progress);
    }
    $progress.width((50 + Math.random() * 30) + "%");
    });
    $(document).ajaxComplete(function() {
    $progress.width("100%").delay(200).fadeOut(400, function() {
    $progress.width("0%").delay(200).show();
    });
    });
    $(document).ready(function(){
    $.getJSON('https://jsonip.com');
    });
    });
  3. Дописываем такие стили, которые можно подправить под свой дизайн:
    Смотреть полностью

Делаем выезжающее боковое меню на чистом CSS

Итак, коротко и ясно… Ниже способ реализации простого выезжающего меню. Код сразу с комментами, что бы было понятно. Тут DEMO. Смысл в том, что нажимаем на значок ☰, и слева выезжает менюшка. Значек бургера превращается в крестик, как в Телеграме 🙂 Затем нажимаем на крестик и менюшка заезжает влево. Всё очень простенько… При желании код и стили легко модернизировать, изменить цвета и размеры. Так же если хотите переместить меню в правую часть, то в стилях просто все left замените на right. Опять же в DEMO песочнице можно экспериментировать. Преимущество такого меню в том, что его можно внедрить в большинство шаблонов.

Вот сама вёрстка:
<!-- input нужен для того, что бы в дальнейшем задать стили иконке ☰ по событию checked, то есть когда меню будем открыать и закрыать -->
<input type="checkbox" id="hmt" class="hidden-menu-ticker">
<!-- Далее вёрстка самой иконки. Разделена на спаны, что бы красиво превращать в крестик при открытии (почти как в Телеграме :) -->
<label class="btn-menu" for="hmt">
<span class="first"></span>
<span class="second"></span>
<span class="third"></span>
</label>
<!-- Менюшка раскрывающаяся и скрывающаяся -->
<ul class="hidden-menu">
<li><a href="">HOME</a></li>
<li><a href="">ABOUT</a></li>
<li><a href="">CONTACTS</a></li>
</ul>
<!-- А затем уже контент странички. В примере просто зашголовок, что бы было видно, как менюшка нахлёстом выдвигается -->
<header>
<h1>ПРОСТОЕ ВЫЕЗЖАЮЩЕЕ БОКОВОЕ МЕНЮ</h1>
</header>

Далее CSS стили:
Смотреть полностью

Делаем плавную смену цвета фона при скроле страницы на Jquery

Идея предельно проста и понятна… Предположим, что хотим смену цвета фона страницы при прокрутке каждых 500px от верха. К сожалению найти готовый простой вариант, поддающийся модернизации, не удалось найти. Поэтому совместно с @only_darkangel был написан элементарный вариант:

Сперва подключим библиотеки в head, если они ещё не подключены
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
<script type="text/javascript" src="//cdn.jsdelivr.net/jquery.color-animation/1/mainfile"></script>

Затем пару строк стилей
<style type="text/css">
body {
background: #fff;
height:4000px;
}
</style>

Далее скрипт, который и будет менять цвет страницы при прокрутке.
Цифра 400 задаёт скорость смены цвета (0,4 секунды). В самом низу цифра 451 задаёт время проверки положения скролла, данная цифра должна быть всегда больше времени скорости цвета.
Смотреть полностью

Функция <?php the_date(); ?> не выводит дату публикацию записи в WordPress или выводит не для всех записей

Для вывода даты публикации записи в WordPress обычно используется функция <?php the_date(); ?>. Но она используется для вывода даты публикации группы постов одного дня. То есть если в один и тот же день было 2 записи, то для первой дата выведется, а для второй нет.

В моём случае эта функция используется в микроразметке поста в таком формате <meta itemprop="datePublished" content="<?php the_date(); ?>">. Со временем я решил вывести видимую дату публикацию записи, и судя из выше сказанного, второй раз функция <?php the_date(); ?> уже ничего не выводила. Поэтому в просторах интернетов было найдено решение использовать функцию <?php the_time("d M Y"); ?> – она выводит для каждой записи индивидуально её дату публикации, а не для группы записей одного дня.

Простой шаблон для WordPress от Gravitsapa

Сегодня на gravitsapa.info сделал редизайн. Добавил серости, флэтовости и мрачности 🙂 На самом деле всё было выполнено для максимально комфортного чтения и быстрой скорости загрузки страниц.
Но мне часто писали на почту с просьбой поделится старым шаблоном. Хоть и так его легко можно было содрать, всё равно ни кому не отправлял. Но теперь готов бесплатно раздать всем желающим…

Особенности шаблона GRAVI1:

Дэмо нет, есть скрин 🙂 СКАЧАТЬ ШАБЛОН GRAVI1

Наверх