Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 11.06.2021, 16:42
Интересующийся
Отправить личное сообщение для romveld Посмотреть профиль Найти все сообщения от romveld
 
Регистрация: 20.10.2018
Сообщений: 24

Один синхронный ползунок на 2 элемента
Ребята, привет! Подскажите, кто сталкивался, как на чистом js сделать один ползунок на 2 элемента как на картинке http://i.prntscr.com/07lqOenFTQG9-lLhS7liUw.png. Буду благодарен за ссылку. Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 11.06.2021, 17:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от romveld
как на чистом js сделать один ползунок на 2 элемента
также как на один.
Ответить с цитированием
  #3 (permalink)  
Старый 11.06.2021, 18:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

input range на несколько слайдеров
romveld,
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        .bottom-row {
            display: flex;
            align-items: center;
            justify-content: space-between;
            margin-top: 12px;
            margin-bottom: 12px;
        }
        #range {
            -webkit-appearance: none;
            width: 20vw;
            height: 2px;
            padding: 0;
            border-radius: 1px;
            border: none;
            background-image: linear-gradient(to right, rgb(223, 149, 52) 0%, rgb(223, 149, 52) 0%, rgb(234, 236, 238) 0%, rgb(234, 236, 238) 100%);
            outline: none;
            margin: 10px auto;
            display: block;
        }
        #range:focus {
            outline: none;
        }
        #range:hover {
            opacity: 1;
        }
        #range::-webkit-slider-thumb {
            -webkit-appearance: none;
            appearance: none;
            width: 16px;
            height: 16px;
            border-radius: 50%;
            background-color: rgb(223, 149, 52);
            cursor: pointer;
        }
        #range::-moz-range-thumb,
        #range::-ms-thumb {
            width: 16px;
            height: 16px;
            border-radius: 50%;
            background-color: rgb(223, 149, 52);
            cursor: pointer;
        }
        #range::-ms-fill-lower,
        #range::-moz-range-progress {
            background-color: #ffdd2d;
        }
        #range::-ms-fill-upper,
        #range::-moz-range-track {
            background-color: #eaecee;
        }
        .carousel {
            width: 400px;
            height: 100px;
            overflow: hidden;
            margin: 10px auto;
        }
        .content {
            display: flex;
        }
        .content img {
            flex-basis: 300px;
            transform: translateX();
        }
    </style>
    <script>
        document.addEventListener("DOMContentLoaded", function() {
            var values = [4, 6, 12];
            var range = document.getElementById('range');
            function getPersent(value, max) {
                return value / max * 100 | 0;
            }
            function setBackground(percent) {
                range.style.backgroundImage = `linear-gradient(to right, rgb(223, 149, 52) 0%, rgb(223, 149, 52) ${percent}%, rgb(234, 236, 238) ${percent}%, rgb(234, 236, 238) 100%)`
                document.querySelectorAll('.content').forEach(el => {
                    let {
                        clientWidth: a,
                        scrollWidth: b
                    } = el;
                    el.style.transform = `translateX(${(a-b)/100 * percent}px)`
                })
            }
            range.addEventListener('mousemove', function() {
                var percent = getPersent(this.value, this.max);
                setBackground(percent)
            });
        });
    </script>
</head>
<body>
    <div class="carousel">
        <div class="content">
            <img src="https://picsum.photos/300/100?1">
            <img src="https://picsum.photos/300/100?2">
            <img src="https://picsum.photos/300/100?3">
            <img src="https://picsum.photos/300/100?4">
            <img src="https://picsum.photos/300/100?5">
            <img src="https://picsum.photos/300/100?6">
            <img src="https://picsum.photos/300/100?7">
            <img src="https://picsum.photos/300/100?8">
            <img src="https://picsum.photos/300/100?9">
        </div>
    </div>
    <input class="slider" id="range" type="range" min="0" max="1" value="0" step=".01">
    <div class="carousel">
        <div class="content">
            <img src="https://picsum.photos/300/100?10">
            <img src="https://picsum.photos/300/100?11">
            <img src="https://picsum.photos/300/100?12">
        </div>
    </div>
    <div class="carousel">
        <div class="content">
            <img src="https://picsum.photos/300/100?13">
            <img src="https://picsum.photos/300/100?14">
        </div>
    </div>
</body>
</html>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как реализовать скрытие определённых элементов при клике на один из них tupoimudak2 Элементы интерфейса 10 17.06.2017 11:39
Почему не работает селектор для нового элемента Prorab337 jQuery 21 10.12.2015 14:58
Изменение цвета элемента в зависимости от id элемента на координате deniskutovskiy Events/DOM/Window 10 10.10.2015 11:43
Изменить класс родительского элемента STyLe Общие вопросы Javascript 1 29.05.2014 20:21
Границы элемента DIv gosha_kap Общие вопросы Javascript 1 06.07.2009 17:12