Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.05.2021, 12:42
DVV DVV вне форума
Кандидат Javascript-наук
Отправить личное сообщение для DVV Посмотреть профиль Найти все сообщения от DVV
 
Регистрация: 26.12.2017
Сообщений: 125

Перевод кода с jQuery на ваниль
Ребята, кто может помочь перевести несколько строк кода с jQuery на нативный js?

https://codepen.io/Viacheslav_Demchenko/pen/bGqrajg
Ответить с цитированием
  #2 (permalink)  
Старый 27.05.2021, 14:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

DVV,
сделайте макет полноценный с html и css, не помешает и пояснение, что делает код.
Ответить с цитированием
  #3 (permalink)  
Старый 27.05.2021, 14:50
DVV DVV вне форума
Кандидат Javascript-наук
Отправить личное сообщение для DVV Посмотреть профиль Найти все сообщения от DVV
 
Регистрация: 26.12.2017
Сообщений: 125

Макет, как таковой, тяжело будет сделать отдельно. Сам этот jQuery код делает вот такую анимацию, как на этой странице на бежевой кнопке. Код я с этого сайта вынул. Задача реализовать его на своем проекте, но только на чистом Js.

https://whitewill.ru/proektyi
Ответить с цитированием
  #4 (permalink)  
Старый 27.05.2021, 15:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

DVV,
ок.
Ответить с цитированием
  #5 (permalink)  
Старый 27.05.2021, 19:21
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

анимация кнопки на js
DVV,
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        .blick-container {
            overflow: hidden;
            position: relative;
            margin-bottom: -15px !important;
        }
        .blick-button {
            text-align: center;
            transition: all .3s;
            border: none;
            position: relative;
            font-size: 15px;
            background-color: #c79c6e;
            padding: 14px 40px 13px;
            font-family: Roboto, sans-serif;
            font-weight: 400;
            width: auto;
            color: #fff;
            background-repeat: no-repeat;
            display: inline-block;
            font-size: 18px;
            text-decoration: none;
            font-family: 'PT Serif', serif;
            font-weight: 400;
        }
        .blick {
            position: absolute;
            -webkit-border-radius: 10em;
            border-radius: 10em;
            background-color: #fff;
            width: 0px;
            height: 0px;
            animation: animBlick 3s infinite;
        }
        @keyframes animBlick {
            0% {
                width: 0;
                margin-top: 0;
                min-height: 0;
                height: 0;
                opacity: 1;
            }
            50% {
                width: 400px;
                height: 400px;
                margin-top: -200px;
                margin-left: -200px;
                opacity: 0;
            }
            100% {
                width: 400px;
                height: 400px;
                margin-top: -200px;
                margin-left: -200px;
                opacity: 0;
            }
        }
    </style>
    <script>
        document.addEventListener("DOMContentLoaded", function() {
            const blicks = document.querySelectorAll(".blick");
            const op = [{
                x: [220, 250],
                y: [-50, 150]
            }, {
                x: [-50, 0],
                y: [-50, 150]
            }];
            const rnd = arr => {
                let [min, max] = arr;
                return Math.trunc(min + Math.random() * (max - min))
            }
            const pos = i => {
                let { x, y } = op[i];
                x = rnd(x);
                y = rnd(y);
                return { x, y }
            }
            const show = _ => blicks.forEach(el => {
                let { x, y } = pos(Math.random() * 2 | 0);
                let obj = {
                    left: `${x}px`,
                    top: `${y}px`
                }
                Object.assign(el.style, obj)
            })
            setInterval(show, 3000)
        });
    </script>
</head>
<body>
    <a href="http://" target="_blank" class="blick-button blick-container">
        <span class="blick"></span>
        <span>Перейти на сайт проекта</span></a>
    <a href="http://" target="_blank" class="blick-button blick-container">
        <span class="blick"></span>
        <span>Перейти на сайт проекта</span></a>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 27.05.2021, 20:38
DVV DVV вне форума
Кандидат Javascript-наук
Отправить личное сообщение для DVV Посмотреть профиль Найти все сообщения от DVV
 
Регистрация: 26.12.2017
Сообщений: 125

Супер! Спасибо огромное!!)))
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jquery и jquery ui Miraliko jQuery 1 29.04.2017 16:21
[перевод книги] jQuery. Novice to Ninja. Второе издание Rozhki Учебные материалы 7 13.08.2013 11:26
Вопрос поддержки старых методов jQuery antonM jQuery 1 04.10.2012 00:08
jquery is not defined - странный случай tarya jQuery 2 16.07.2012 14:27
jquery - Как получить полный путь? kirill.adw jQuery 5 20.11.2009 17:40