Ответы пользователя по тегу CSS
  • Как расположить точки на окружности?

    Okujava-script
    @Okujava-script
    Веб-программист с абсолютным слухом и композитор
    Этот пример не затрагивает CSS, а реализован только на JS. Так как углы на JS измеряются в радианах, а длина окружности равна количеству радиан, равному числу пи * 2, (приблизительно 6.28, это количество радиусов из которых состоит окружность) организовываем цикл от нуля до пи * 2. А вот шаг итераций задаём поделив 6.28 на количество точек, которое нам нужно равномерно расставить на окружности.
    <canvas id=canvas width=200 height=200></canvas>
    let r = 90; // радиус
    let amountOfPoints = 7; // количество точек
    let x, y;
    let ctx = canvas.getContext('2d');
    for(i = 0; i < Math.PI * 2; i += Math.PI * 2 / amountOfPoints){
    	x = canvas.width / 2 + r * Math.sin(i);
    	y = canvas.height / 2 + r * Math.cos(i);
    	ctx.fillRect(x, y, 2, 2);
    }
    Ответ написан
    Комментировать
  • Как можно анимировать звуковую волну?

    Okujava-script
    @Okujava-script
    Веб-программист с абсолютным слухом и композитор
    Это не "3D" волна, а только наложение состояний меняющейся кривой в 2Д-пространстве. Анимировать можно с помощью WebAudio Api:
    <html>
    <head>
    <title>визуализатор</title>
    <meta charset="utf-8" />
    <style>
    body{
    	background: #003;
    	font-family: arial;
    }
    #myCanvas{
    	border-width: 3px;
    	border-color: white;
    	border-radius: 15px;
    	border-style: solid;
    	box-shadow: 0 0 15px 15px #7e7;
    	animation: spin-counter 5s linear infinite;
    }
    @keyframes spin-counter {
    	from{
    		box-shadow: 0 0 5px 5px #7e7;
    		border-color: white;
    	}
    	to{
    		box-shadow: 0 0 15px 15px pink;
    		border-color: gold;
    	}
    }
    </style>
    </head>
    <body><center>
    <canvas id="myCanvas" width=1024 height=256 style="background:blue"></canvas><br /><br />
    <audio src=sound.mp3' controls></audio>
    </center></body>
    <script>
    var audio = document.querySelector('audio');
    audio.onplay = function(){
    	var audioCtx = new AudioContext();
    	var source   = audioCtx.createMediaElementSource(audio);
    	var analyser = audioCtx.createAnalyser();
        source.connect(analyser); // Подключаем анализатор к элементу audio
        analyser.connect(audioCtx.destination); // Без этой строки нет звука, но анализатор работает.
    	var frequencyData = new Uint8Array(analyser.frequencyBinCount);
    	var canvas = document.getElementById('myCanvas');
    	var ctx = canvas.getContext('2d');
    	var counter = 0;
    	setInterval(function(){
    		analyser.getByteFrequencyData(frequencyData); // Записываем в массив данные уровней частот
    		ctx.fillStyle = "black"; // Задаём цвет фона
    		ctx.globalAlpha = 0.05; // Это для получения эффекта плавного погасания полос
    		ctx.fillRect (0, 0, canvas.width, canvas.height); // Полупрозрачно чистим экран
    		ctx.globalAlpha = 1;
    		ctx.strokeStyle = '#3f9';
    		ctx.beginPath();
    		ctx.moveTo(Math.floor(150 * Math.sin(counter / 1)), 255 - frequencyData[0]);
    		for(i = 1; i < 1024; i ++) ctx.lineTo(i + Math.floor(350 * Math.sin(i / 15)), 255 - frequencyData[i]);
    		ctx.stroke();
    		counter ++;
    	}, 20);
    }
    </script>
    </html>

    ссылочка
    То, как будут выглядеть линии, зависит от того, какой алгоритм Вы задействуете для отображения.
    Ответ написан
    Комментировать
  • Как сделать вывод значения ползунка в поле input?

    Okujava-script
    @Okujava-script
    Веб-программист с абсолютным слухом и композитор
    Начальное значение:
    <input id=r1 type=range value=20 oninput='n1.value = this.value' />
    <input id=n1 type=number value=20 oninput='r1.value = this.value' /><br /><br />
    
    Конечное значение:
    <input id=r2 type=range value=80 oninput='n2.value = this.value' />
    <input id=n2 type=number value=80 oninput='r2.value = this.value' />
    Ответ написан
    Комментировать
  • Как сделать, что бы при нажатии на фото воспроизводилась музыка?

    Okujava-script
    @Okujava-script
    Веб-программист с абсолютным слухом и композитор
    <audio id=audio src="sound.mp3" controls></audio>
    <img id=img src="image1.jpg" />
    <button id=btn onclick="playPause()"> play </button>
    const playPause = _ => {
       if(audio.paused){
          audio.play();
          btn.textContent = " pause ";
          img.src = "image2.jpg";
       }else{
          audio.pause();
          btn.innerText = " play ";
          img.src = "image1.jpg";
       }
    }
    Ответ написан
    Комментировать
  • Как скопировать сайт?

    Okujava-script
    @Okujava-script
    Веб-программист с абсолютным слухом и композитор
    По одному общему сообщению трудно что либо сказать, нужно в консоли каждую ошибку исправлять по отдельности, обращая особое внимание на несуществующие пути к графическим и другим файлам, необъявленные переменные и функции и др.
    Ответ написан
    Комментировать