Как сделать, чтобы span или div исчезали и появлялись плавно?
Как сделать, чтобы span или div исчезали и появлялись плавно?
Обычно делается так: style.display = 'none'; Но исчезновение происходит мгновенно, и часто не успеваешь понять, что именно исчезло. Можно ли как-то сделать так, чтобы блок плавно уменьшался до полного исчезновения? |
Можно, как пример на jQuery
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script>
<a href="#">click</a>
<div style="background: blue; width: 200px; height: 50px;"></div>
<script>
$('a').click(function() {
$('div').fadeToggle('slow', 'linear');
});
</script>
|
А можно без джиКвэри?
|
Цитата:
|
|
а можно и по другому. накрыть сверху див другим дивом. и плавно менять его его свойсво css от прозрачного до основного цвета сайта)
|
Цитата:
|
ну мона и так. только смотря ведь какой элемент плавно скрывать и открывать.хотя ты прав и я прав))
|
Я имел в виду не уменьшение прозрачности, а уменьшение размеров блока. Можно каким-то параметром плавно уменьшать его размеры, там ставить 90% от оригинальной высоты, потом 80% и так далее?
|
ну и что сложного?)))
parObjp=document.getElementById(id diva); parObjp.style.position="absolute"; for (x=100;x>0;x--){ for (y=100;y>0;y--){ parObjp.style.height=y+"px"; parObjp.style.width=x+"px"; } } |
или вместо пикселов в % задавайсразу бы написал что нужно изменение размеров а не изменение видимости. да и сразу ты задал тон на видимость
|
Цитата:
|
И потом как узнать начальное значение parObjp.style.height ?
И как сделать, чтобы не мгновенно исчезало, а с задержкой? |
толи лыжи толи я.......а размеры контейнера изначально не заданны?узнать по тому же принципу var y=parObjp.style.height;
мож стоит хоть чуть основы языка подучить? а не копирывать чьито примеры и чуть изменять? ну а код рабочий-им я у себя на сайте изменяю размеры контейнера.задержка-ну сделай через таймер ,ну введи пустые циклы,ну измени приращивание в цикле |
parObjp=document.getElementById(id diva);
parObjp.style.position="absolute";
for (x=100;x>0;x--){
for (y=100;y>0;y--){
parObjp.style.height=y+"px";
parObjp.style.width=x+"px";
}
}
Изменения наступят сразу. Кроме того, значение height будет скакать от ста до нуля 100 раз подряд. В-общем, бред какой-то. |
положил варианты изменения по х и y.если человек не понимает как вложенные циклы работают-то может человеку стоит начать с основ програмирования. замедлить ну дак 3 варианта класики-вложенный пустой цикл. приращивание не 1 а доли 1(будет зависить от мощьности компа слиента скорость) или через таймер это организовать( ни от чего не зависит) код рабочий в смысле что модель parObjp.style.height=y+"px"; parObjp.style.width=x+"px"; рабочая . а код за него писать я не и не собирался.или мне за него ещё и думать?
|
Ну написал бред — ничего страшного, зачем так расстраиваться.
|
подколол)))чего эт бред написал? ну вложил циклы друг в друга а не разнёс-сам будтобы иногда не тупиш. а в чём остальном бред ?))) сам то с какого раза просёк что я циклы вложил друг в друга?))
|
Цитата:
<script type="text/javascript">
window.onload = function(){
var elem = document.getElementsByTagName('div')[0], i = 0, j = 0, s = 100;
document.getElementsByTagName('a')[0].onclick = function(){
if(++i<=s){
elem.style.height = i +'px';
j = i;
if(j>=s) {
return false;
}
}
else {
elem.style.height = --j +'px';
if(j<=0){
i = 0;
return false;
}
}
window.setTimeout(arguments.callee, 10);
return false;
};
};
</script>
<a href="#">click<a/>
<div style="background: #0095FF; overflow: hidden; width: 200px; height: 0px; ">Text</div>
|
Цитата:
|
На всякий случай )))
Цитата:
Цитата:
<script type="text/javascript">
window.onload = function () {
var a = document.getElementsByTagName("div")[0],
b = 0,
c = ["Text1", "Text2<br />Text2", "Text3<br />Text3<br />Text3"];
document.getElementsByTagName("a")[0].onclick = function () {
a.style.overflow = "hidden";
a.style.height = "";
a.style.display = "";
var d = a.offsetHeight;
if (b < d) {
a.style.height = "0px";
window.setTimeout(function () {
if (++b <= d) {
a.style.height = b + "px";
window.setTimeout(arguments.callee, 10)
}
}, 10);
return false;
}
if( b >= d ){window.setTimeout(function () {
if (--b >= 0) {
a.style.height = b + "px";
window.setTimeout(arguments.callee, 10)
} else {
b = 0;
a.style.display = "none";
c.push(c.shift());
a.innerHTML = c[0]
}
}, 10);return false;}
}
};
</script>
<a href="#">click</a>
<div style="background: #0095FF; width: 200px; display: none">Text1</div>
|
var y=parObjp.style.height;
|
Цитата:
А тексты ваши читать невозможно. Куча скобок посреди текста, предложения не с заглавной буквы. |
конечно не будет -если будет написанна всего эта одна строка. но этой стороки более чем достаточно чтобы понять какая строка должна перед ней стоять чтобы всё работало
|
Это выражение не даёт высоту элемента. Так понятней?
|
Цитата:
+offsetWidth/offsetHeight |
Цитата:
<DIV ID=oDiv STYLE="overflow:scroll; width:200; height:100"> . . . </DIV> <BUTTON onclick="alert(oDiv.clientWidth)">client width</BUTTON> <BUTTON onclick="alert(oDiv.offsetWidth)">offset widthY</BUTTON> P.S. Пример из MSDN... :) |
Про fade и самопис известно и возможно, и вот даже пример
http://neoprizma.net/demo/jquery/fading/jquery.html. Копался и на Jquery.com и тут, но не нашел исчезновение с пролетом вверх. Буду признателен. |
Цитата:
Я так и не нашёл тогда ответ на вопрос как узнать высоту произвольного блока. Удалось ли кому-нибудь найти ответ на этот страшно сложный вопрос? |
Цитата:
http://javascript.ru/forum/css-html-...sota-diva.html |
Цитата:
Не надо нам вала неработающих примеров, дайте всего ОДИН, но РАБОТАЮЩИЙ. |
| Часовой пояс GMT +3, время: 05:54. |