Javascript.RU

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

Изменение цвета выделеного текста
Даны 4 радио кнопки сверху и текст снизу. возле кнопок подписаны цвета
при клике на кнопку цвет выделения меняется на тот который был написан
как это можно сделать???

Последний раз редактировалось melnikov24, 25.10.2018 в 18:28.
Ответить с цитированием
  #2 (permalink)  
Старый 25.10.2018, 18:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

melnikov24,
сделайте минимальный макет
Ответить с цитированием
  #3 (permalink)  
Старый 25.10.2018, 19:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

выделение цветом
melnikov24,
выделить текст, выбрать цвет.

<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  .selected{
        border-radius: 2px;
        padding: 2px;
  }

  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>

  <script>
$(function() {
var btn = $(".color");
btn.click(function() {
     styliString(this.value)
  });

function styliString(value) {
  if (window.getSelection() == '') {
    return false;
  }
  var range = window.getSelection().getRangeAt(0);
  var selectionContents = range.extractContents();
  var span = document.createElement("span");
  span.appendChild(selectionContents);
  span.setAttribute("class", "selected");
  span.style.backgroundColor = value;
  range.insertNode(span);
}



});
  </script>
</head>

<body>
<input name="g" type="button" value="Red" class="color">
<input name="g" type="button" value="Yellow" class="color">
<input name="g" type="button" value="Green" class="color">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Itaque si aut requietem natura non quaereret aut eam posset alia quadam ratione consequi. Hanc quoque iucunditatem, si vis, transfer in animum; <b>Quod autem ratione actum est, id officium appellamus.</b> Nec vero sum nescius esse utilitatem in historia, non modo voluptatem. An hoc usque quaque, aliter in vita? Quos quidem tibi studiose et diligenter tractandos magnopere censeo. Duo Reges: constructio interrete. Theophrasti igitur, inquit, tibi liber ille placet de beata vita? <i>Eademne, quae restincta siti?</i> Nummus in Croesi divitiis obscuratur, pars est tamen divitiarum. Potius ergo illa dicantur: turpe esse, viri non esse debilitari dolore, frangi, succumbere. </p>

</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 25.10.2018, 19:55
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,005

рони,

если выделить "Lorem ipsum" и сделать red, потом "ipsum dolor" green (пересечение отрезков), то ipsum останется red

надо из selectionContents выкидывать оформление
Ответить с цитированием
  #5 (permalink)  
Старый 25.10.2018, 22:14
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

<!doctype html>
<html>
<head>
	<meta charset="utf-8">
	<style type="text/css">
		.selected {
			border-radius: 3px;
			-webkit-box-decoration-break: clone;
		}
		
		::selection {
			background: rgba(0, 0, 0, .25);
		}

	</style>
	<script>

		function styliString(color) {
			const selection = getSelection();
			const range = selection.getRangeAt(0);
			const selectionContents = range.extractContents();
			const span = document.createElement("span");
			
			for(const oldSpan of selectionContents.querySelectorAll(".selected")) {
				for(const childNode of [...oldSpan.childNodes])
					oldSpan.parentNode.insertBefore(childNode, oldSpan);
				
				oldSpan.remove();
			}
			
			selectionContents.normalize();
			span.classList.add("selected");
			span.style.backgroundColor = color;
			span.appendChild(selectionContents);
			range.insertNode(span);
		}
		
		document.addEventListener("click", ({ target }) => {
			if(target.classList.contains("color")) {
				styliString(target.dataset.color || target.textContent);
			}
		});
	</script>
</head>
<body>
	<button class="color" data-color="#f06">Pink</button>
	<button class="color">Gold</button>
	<button class="color">Yellowgreen</button>
	<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Itaque si aut requietem natura non quaereret aut eam posset alia quadam ratione consequi. Hanc quoque iucunditatem, si vis, transfer in animum; <b>Quod autem ratione actum est, id officium appellamus.</b> Nec vero sum nescius esse utilitatem in historia, non modo voluptatem. An hoc usque quaque, aliter in vita? Quos quidem tibi studiose et diligenter tractandos magnopere censeo. Duo Reges: constructio interrete. Theophrasti igitur, inquit, tibi liber ille placet de beata vita? <i>Eademne, quae restincta siti?</i> Nummus in Croesi divitiis obscuratur, pars est tamen divitiarum. Potius ergo illa dicantur: turpe esse, viri non esse debilitari dolore, frangi, succumbere.</p>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 26.10.2018, 09:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,072

Malleys,
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как с помощью скрипта высчитать ширину полосы прокрутки? LADYX Элементы интерфейса 35 13.11.2017 12:50
Изменение цвета текста в font bgraf Events/DOM/Window 3 24.10.2016 14:38
Изменение цвета текста при прокрутке страницы Fostik Общие вопросы Javascript 1 25.12.2014 06:00
Изменение цвета текста кнопки и цвета кнопки при нажатии Setta jQuery 22 31.07.2013 17:48
Изменение цвета текста без id KupueIIIKo Events/DOM/Window 5 04.10.2011 16:52