
04.02.2014, 17:05
|
|
Профессор
|
|
Регистрация: 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.
|
|

04.02.2014, 17:54
|
 |
Профессор
|
|
Регистрация: 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" />
__________________
В личку только с интересными предложениями
|
|

04.02.2014, 18:17
|
|
Профессор
|
|
Регистрация: 04.02.2014
Сообщений: 167
|
|
Нельзя так делать?)
|
Цитата:
|
$().animate() или даже $().show()/hide()
вот это уже интересно)) можно подробнее, как с помощью их реализовать?
|
|
|

04.02.2014, 18:22
|
|
Аспирант
|
|
Регистрация: 27.02.2013
Сообщений: 36
|
|
|
$().animate({opacity: 0}, 400); //400 - speed;
$().animate({opacity: 1}, 400); //400 - speed;
либо $().fadein(400); //400 - speed;
и $().fadeout(400); //400 - speed;
|
|

04.02.2014, 18:30
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
|
xTODx, а чем css не устраивает?
DeUM, fadeIn, fadeOut.
__________________
В личку только с интересными предложениями
|
|

04.02.2014, 19:14
|
|
Профессор
|
|
Регистрация: 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.
|
|

04.02.2014, 19:30
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
|
Сообщение от danik.js
|
|
xTODx, а чем css не устраивает?
|
|
Сообщение от xTODx
|
|
засекают вход/выход курсора на обьект, не?
|
Че за нах? fadeIn/fadeOut - это тупо обертка над animate. То есть под капотом у них просто напросто вызов функции .animate()
|
Сообщение от xTODx
|
|
цикл будет повторяться много раз
|
.stop().animate()
__________________
В личку только с интересными предложениями
|
|

04.02.2014, 19:41
|
|
Профессор
|
|
Регистрация: 04.02.2014
Сообщений: 167
|
|
|
огромное спасибо
Сообщение от danik.js
|
|
.stop().animate()
|
Спасибо. помогло))
|
|

04.02.2014, 19:54
|
|
Аспирант
|
|
Регистрация: 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);
})
"Масса" вариантов.
|
|

04.02.2014, 21:41
|
 |
Профессор
|
|
Регистрация: 11.09.2010
Сообщений: 8,804
|
|
|
xTODx, а чем css не устраивает?
__________________
В личку только с интересными предложениями
|
|
|
|