Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.09.2012, 14:50
JSN JSN вне форума
Аспирант
Отправить личное сообщение для JSN Посмотреть профиль Найти все сообщения от JSN
 
Регистрация: 01.09.2012
Сообщений: 57

Как сделать постепенное увеличение opacity.
Вот html код
<html>
<body>
<script>
function showsl (n) 
{ var el=document.all["l"].style 
if (n==1) 
 el.opacity=0 
else 
 el.opacity=0.8 
}  
</script>
<form name="form1"> 
<input type="button" value=Показать onmouseover="showsl(2)" onmouseout='showsl(1)'> 
</form> 
<div id='l' style='opacity:0'>Некий текст</div>
</body>
</html>


Помогите пожалуйста, как сделать так, чтобы div проявлялся постепенно?
Заранее благодарен

Последний раз редактировалось JSN, 02.09.2012 в 15:14.
Ответить с цитированием
  #2 (permalink)  
Старый 02.09.2012, 15:01
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

JSN,
Вот в сообщении 5 есть пример Помогите со скроллингом

можно сделать на jQuery http://hostjs-mybb2011.narod.ru/sliderLight.htm


Есть Вариант чисто через css http://qps.ru/mJXh4
Ответить с цитированием
  #3 (permalink)  
Старый 02.09.2012, 15:52
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

<input id="but" type="button" value="Показать"> 
<div id='div' style="width: 100%; opacity: 0; filter: alpha(opacity=0)">Скрывается или исчезает</div>

<script>
window.onload = function () {
	var but = document.getElementById('but');
	var div = document.getElementById('div');
	var int;
	
	but.onmouseover = function () {
		clearInterval(int);
		var n = 0;
		int = setInterval(function () {
			if (n >= 1) {
				n = 1;
				clearInterval(int);
			}
			n = n + 0.1;
			div.style.opacity = n;
			div.style.filter = 'alpha(opacity=' + 100*n + ')';
		}, 100);
	}
	
	but.onmouseout = function () {
		clearInterval(int);
		var n = 1;
		int = setInterval(function () {
			if (n <= 0) {
				n = 0;
				clearInterval(int);
			}
			n = n - 0.1;
			div.style.opacity = n;
			div.style.filter = 'alpha(opacity=' + 100*n + ')';
		}, 100);
	}
	
}
</script>


не понял только почему в IE для div-a не срабатывает параметр filter, хотя для кнопки срабатывает


<input id="but" type="button" value="Показать" style="opacity: 0; filter: alpha(opacity=0)"> 
<div id='div'>Скрывается или исчезает</div>

<script>
window.onload = function () {
	var div= document.getElementById('but');
	var but= document.getElementById('div');
	var int;
	
	but.onmouseover = function () {
		clearInterval(int);
		var n = 0;
		int = setInterval(function () {
			if (n >= 1) {
				n = 1;
				clearInterval(int);
			}
			n = n + 0.1;
			div.style.opacity = n;
			div.style.filter = 'alpha(opacity=' + 100*n + ')';
		}, 100);
	}
	
	but.onmouseout = function () {
		clearInterval(int);
		var n = 1;
		int = setInterval(function () {
			if (n <= 0) {
				n = 0;
				clearInterval(int);
			}
			n = n - 0.1;
			div.style.opacity = n;
			div.style.filter = 'alpha(opacity=' + 100*n + ')';
		}, 100);
	}
	
}
</script>

Последний раз редактировалось bes, 02.09.2012 в 16:17.
Ответить с цитированием
  #4 (permalink)  
Старый 02.09.2012, 15:57
JSN JSN вне форума
Аспирант
Отправить личное сообщение для JSN Посмотреть профиль Найти все сообщения от JSN
 
Регистрация: 01.09.2012
Сообщений: 57

Спасибо огромное!
Ответить с цитированием
  #5 (permalink)  
Старый 02.09.2012, 16:00
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от bes
не понял только почему в IE для div-a не срабатывает параметр filter, хотя для кнопки срабатывает
потому что фильтры не работают у элементов, у которых hasLayout установлено в false.
Ответить с цитированием
  #6 (permalink)  
Старый 02.09.2012, 16:18
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

поправил, добавив width
какая коварная штука оказывается ещё есть, melky, спасибо
Ответить с цитированием
  #7 (permalink)  
Старый 02.09.2012, 16:37
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от bes Посмотреть сообщение
поправил, добавив width
можно было просто поставить zoom:1
Ответить с цитированием
  #8 (permalink)  
Старый 02.09.2012, 19:50
JSN JSN вне форума
Аспирант
Отправить личное сообщение для JSN Посмотреть профиль Найти все сообщения от JSN
 
Регистрация: 01.09.2012
Сообщений: 57

<div id="but" style='position:absolute; top:60; left:90;'>Кнопка - картинка</div> 
<div id='div' style="opacity: 0; filter: alpha(opacity=0); 

position:absolute; top:100; left:100; z-index:100">Текст - Картинка</div>

<script>
window.onload = function () {
	var but = document.getElementById('but');
	var div = document.getElementById('div');
	var int;
	
	but.onmouseover = function () {
		clearInterval(int);
		var n = 0;
		int = setInterval(function () {
			if (n >= 0.8) {
				n = 0.8;
				clearInterval(int);
			}
			n = n + 0.001;
			div.style.opacity = n;
			div.style.filter = 'alpha(opacity=' + 80*n + ')';
		}, 0.01);
	}
	
	but.onmouseout = function () {
		clearInterval(int);
		var n = div.style.opacity;
		int = setInterval(function () {
			if (n <= 0) {
				n = div.style.opacity;
				clearInterval(int);
			}
			n = n - 0.001;
			div.style.opacity = n;
			div.style.filter = 'alpha(opacity=' + 80*n + ')';
		}, 0.01);
if (div.style.opacity > 0.3) {div.onmouseover = function () {clearInterval

(int);
		var n = 0.4;
		int = setInterval(function () {
			if (n >= 0.8) {
				n = 0.8;
				clearInterval(int);
			}
			n = n + 0.001;
			div.style.opacity = n;
			div.style.filter = 'alpha(opacity=' + 80*n + ')';
		}, 0.01);}
div.onmouseout = function () {clearInterval(int);
		var n = div.style.opacity;
		int = setInterval(function () {
			if (n <= 0) {
				n = div.style.opacity;
				clearInterval(int);
			}
			n = n - 0.001;
			div.style.opacity = n;
			div.style.filter = 'alpha(opacity=' + 80*n + ')';
		}, 0.01);}}
	}
		
}
</script>

я немного изменил код, в связи с нужными функциями, но есть проблема, после того, как div появился один раз, при наведении на него он снова появляется, даже если div.style.opacity<0.3
Я догадываюсь в чем ошибка, но не не знаю как исправить.
Заранее спасибо за помощь.
Ответить с цитированием
  #9 (permalink)  
Старый 02.09.2012, 20:02
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

в чём смысл сей затеи, какой эффект должен получиться на выходе?
Ответить с цитированием
  #10 (permalink)  
Старый 25.10.2012, 20:54
JSN JSN вне форума
Аспирант
Отправить личное сообщение для JSN Посмотреть профиль Найти все сообщения от JSN
 
Регистрация: 01.09.2012
Сообщений: 57

Проблема решалась, с помощью display, я просто все усложнил.
Теперь возник другой вопрос:
Во-первых, допустим что у нас есть два массива array1 и array2, можно ли задать его элементам следующие значения: array1[1] = document.getElementBy..., например.
Во-вторых, если это возможно, то как сделать так, что бы при допустим наведении на элемент номер i массива array1, происходило нечто с элементом по номером i массива array2 (или i +1; или j; и т.д.)?
заранее спасибо
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать реакцию на изменение любого элемента формы. Mik Events/DOM/Window 3 28.07.2011 08:52
Как убрать hover? Либо как сделать стрелки статичными? krusty36 Элементы интерфейса 1 13.07.2011 09:20
Как лучше сделать виджет? comentator Элементы интерфейса 0 25.03.2011 08:44
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
Многостраничная галерея на lightbox.js Как сделать? MASTER Общие вопросы Javascript 9 24.07.2009 14:38