Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.02.2014, 17:05
Профессор
Отправить личное сообщение для xTODx Посмотреть профиль Найти все сообщения от xTODx
 
Регистрация: 04.02.2014
Сообщений: 167

Останавливается функция.
Всем привет, пока в JS не далёк, но в общем такое дело.
При наведении на картинку, у второй меняется постепенно opacity на 1, когда отводу мышу, назад на 0.
Для этого я написал вот такой вот чудо код
<script>
//IMG
function Imgopp(objid){
	var newop = 0;
	
INTERVAL = setInterval(function(){newop = newop + 0.1;
									opacity(newop);
									 }, 1);
function opacity(newop){
	if(newop < 1.1){
	var obj= $('#'+objid);
	obj.css({'opacity' : newop});
	} else if (newop >=1.1){
		var obj= $('#'+objid);
		obj.css({'opacity' : 1});
		clearInterval(INTERVAL);
		}
	return newop;
	}

}
function Imgzpp(objid){
	var newop =1;
INTERVAL = setInterval(function(){newop = newop - 0.1;
									opacity(newop);
									 }, 1);
function opacity(newop){
	if(newop >= 0.1){
	var obj= $('#'+objid);
	obj.css({'opacity' : newop});
	} else if (newop < 0.11){
		var obj= $('#'+objid);
		obj.css({'opacity' : 0});
		clearInterval(INTERVAL);
		}
	return newop;
	}

}
</script>


код html для вызова

<div id="load1" align="center">
<div id="back"  onmouseover="Imgopp('open1')" onmouseout="Imgzpp('open1')" >
<img src="img1" width="100px"  />
</div>
<div id="front">
<img id="open1" class="open" src="img2 "width="101px" />
</div>
</div>

в СSS у div#front стоит opacity : 0, постепенно меняем его до 1
почему оно останавливается, если быстро провести мышей.

Последний раз редактировалось xTODx, 04.02.2014 в 17:37.
Ответить с цитированием
  #2 (permalink)  
Старый 04.02.2014, 17:54
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от xTODx
$('#'+objid)
jQuery детектед! Дык какого хера ты мудришь с интервалами? Есть же $().animate() или даже $().show()/hide() И где объявление переменной INTERVAL? И почему кэпслоком, это же не константа?

И вобще:

<style>
img{
    opacity: 0.5;
    transition: opacity 0.5s;
}
img:hover{
    opacity: 1;
}
</style>
<img src="https://www.google.ru/images/srpr/logo11w.png" />
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 04.02.2014, 18:17
Профессор
Отправить личное сообщение для xTODx Посмотреть профиль Найти все сообщения от xTODx
 
Регистрация: 04.02.2014
Сообщений: 167

Цитата:
jQuery детектед!
Нельзя так делать?)
Цитата:
$().animate() или даже $().show()/hide()
вот это уже интересно)) можно подробнее, как с помощью их реализовать?
Ответить с цитированием
  #4 (permalink)  
Старый 04.02.2014, 18:22
Аспирант
Отправить личное сообщение для DeUM Посмотреть профиль Найти все сообщения от DeUM
 
Регистрация: 27.02.2013
Сообщений: 36

$().animate({opacity: 0}, 400); //400 - speed;
$().animate({opacity: 1}, 400); //400 - speed;
либо $().fadein(400); //400 - speed;
и $().fadeout(400); //400 - speed;
Ответить с цитированием
  #5 (permalink)  
Старый 04.02.2014, 18:30
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

xTODx, а чем css не устраивает?
DeUM, fadeIn, fadeOut.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #6 (permalink)  
Старый 04.02.2014, 19:14
Профессор
Отправить личное сообщение для xTODx Посмотреть профиль Найти все сообщения от xTODx
 
Регистрация: 04.02.2014
Сообщений: 167

Цитата:
$().animate({opacity: 0}, 400); //400 - speed;
$().animate({opacity: 1}, 400); //400 - speed;
либо $().fadein(400); //400 - speed;
и $().fadeout(400); //400 - speed;
Спасибо, знаете, не ловко себя чувствую теперь, долго думал, мучал себя..) а всё это решается в 1 строке))
сделал с animate, с fadeOut что то не вышло, хотя догадываюсь почему)
fadeOut/fadeIn - засекают вход/выход курсора на обьект, не?
к стати, забавно выходит, если я много раз проведу над обьектом, то цикл будет повторяться много раз)

Последний раз редактировалось xTODx, 04.02.2014 в 19:28.
Ответить с цитированием
  #7 (permalink)  
Старый 04.02.2014, 19:30
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от danik.js
xTODx, а чем css не устраивает?
Сообщение от xTODx
засекают вход/выход курсора на обьект, не?
Че за нах? fadeIn/fadeOut - это тупо обертка над animate. То есть под капотом у них просто напросто вызов функции .animate()

Сообщение от xTODx
цикл будет повторяться много раз
.stop().animate()
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #8 (permalink)  
Старый 04.02.2014, 19:41
Профессор
Отправить личное сообщение для xTODx Посмотреть профиль Найти все сообщения от xTODx
 
Регистрация: 04.02.2014
Сообщений: 167

огромное спасибо
Сообщение от danik.js Посмотреть сообщение
.stop().animate()
Спасибо. помогло))
Ответить с цитированием
  #9 (permalink)  
Старый 04.02.2014, 19:54
Аспирант
Отправить личное сообщение для DeUM Посмотреть профиль Найти все сообщения от DeUM
 
Регистрация: 27.02.2013
Сообщений: 36

Сообщение от xTODx Посмотреть сообщение
Спасибо, знаете, не ловко себя чувствую теперь, долго думал, мучал себя..) а всё это решается в 1 строке))
сделал с animate, с fadeOut что то не вышло, хотя догадываюсь почему)
fadeOut/fadeIn - засекают вход/выход курсора на обьект, не?
к стати, забавно выходит, если я много раз проведу над обьектом, то цикл будет повторяться много раз)
$().hover(function() { //При наведении над объектом
$().animate({'opacity': 1}, 400); // можно и так $().fadeIn(400); и так //$().fadeTo(400, 1);
},
function() { //callback
$().animate({'opacity': '.4'}, 400);// можно и так $().fadeOut(400); и так //$().fadeTo(400, 0);
})
"Масса" вариантов.
Ответить с цитированием
  #10 (permalink)  
Старый 04.02.2014, 21:41
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

xTODx, а чем css не устраивает?
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работает функция unserialize zebulun Общие вопросы Javascript 3 28.12.2012 17:47
Как узнать какая функция вызывается в браузере при наведении мыши? Бобр Элементы интерфейса 6 01.10.2012 04:01
функция и несуществующий id Ankh Элементы интерфейса 4 10.02.2012 23:49
функция не успевает Sadist_dead Элементы интерфейса 22 02.10.2011 19:00
Где вызывается функция? cradis Общие вопросы Javascript 5 23.04.2011 13:47