Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   При нажатии на radio изменить прозрачность div (https://javascript.ru/forum/dom-window/52393-pri-nazhatii-na-radio-izmenit-prozrachnost-div.html)

Globus 17.12.2014 14:52

При нажатии на radio изменить прозрачность div
 
Добрый день! Господа, подскажите, пожалуйста с решением вот какой проблемы:

В автоматически генерируемой форме есть несколько инпутов (радио) и над ними div-ы с картинками. По умолчанию в цсс у дивов с картинками задан opacity:0.5 , при нажатии на инпут, картинка над ним должна становиться непрозрачной, т.е. opacity:1

Это я сделал, присвоив не картинке, а самому диву прозрачность.
------------

Вопрос!

Как сделать, чтобы при нажатии на другую радио кнопку, например, из группы "Цвет", первый выбранный див (с картинкой) обратно становился прозрачным, как и был.

При этом есть ведь несколько дивов, внутри которых группы радио кнопок ( <div class="1">, <div class="2">.... ) - цвет, размер и т.п.

Как быть? Заранее спасибо за помощь!

Нет id, на checked ориентироваться тоже нельзя..(

$('input').click(function(){
  $(this).prev().animate({opacity:'1.0'});
  return false;
});

<style>
div.images { opacity:0.5; }
</style>
 
<form method="POST" action="" class="wpcc_form wpcc_form_2">
<div class="1">
  цвет
	<label>
		<div class="images"><img src="img-1.jpg"></div>
		<input type="radio" name="m"> 
	</label>
				
	<label>
		<div class="images"><img src="img-2.jpg"></div>
		<input type="radio" name="m"> 
	</label>
</div>
 
<div class="2">	
  форма
 	<label>
		<div class="images"><img src="1a-img.jpg"></div>
		<input type="radio" name="p"> 
	</label>
	<label>
		<div class="images"><img src="2a-img.jpg"></div>
		<input type="radio" name="p"> 
	</label>
		<label>
		<div class="images"><img src="3a-img.jpg"></div>
		<input type="radio" name="p"> 
	</label>
</div>
</div>

рони 17.12.2014 14:59

Globus,
а так ?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
</head>

<body>
<style>
div.images { opacity:0.5; }
:checked + div.images { opacity:1; }
</style>

<form method="POST" action="" class="wpcc_form wpcc_form_2">
<div class="1">
  цвет
	<label><input type="radio" name="m" checked="checked">
		<div class="images"><img src="img-1.jpg"></div>

	</label>

	<label> <input type="radio" name="m">
		<div class="images"><img src="img-2.jpg"></div>

	</label>
</div>

<div class="2">
  форма
 	<label> <input type="radio" name="p">
		<div class="images"><img src="1a-img.jpg"></div>

	</label>
	<label><input type="radio" name="p">
		<div class="images"><img src="2a-img.jpg"></div>

	</label>
		<label><input type="radio" name="p">
		<div class="images"><img src="3a-img.jpg"></div>

	</label>
</div>
</form>

</body>

</html>

Globus 17.12.2014 15:38

было бы здорово, но форма генерируется автоматически и её переписывать нельзя. Может есть ещё какая-то возможность использовать псевдоклассы в исходном варианте кода формы?

Globus 17.12.2014 15:42

Ваш вариант работает даже при исходном положении кода, но только, если убрать лейблы
Т.е. не

...
<div class="1">
<label><input type="radio" name="m" checked="checked">
<div class="images"><img src="img-1.jpg"></div>

</label>
....
а просто

...
<div class="1">
<input type="radio" name="m" checked="checked">
<div class="images"><img src="img-1.jpg"></div>
....



Никак не пойму, чем мешают теги label ???

Globus 26.12.2014 22:39

переписал генерирующийся штмл и всё заработало, как у вас, спасибо!


Часовой пояс GMT +3, время: 02:31.