Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 04.11.2008, 19:06
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Octane
Kolyaj, он написал не лень
И правда
Ответить с цитированием
  #12 (permalink)  
Старый 06.11.2008, 15:54
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

решил потренироваться. но застрял.
Создал два блока и элемент на котором кликаем.
При клике блок меняет свою высоту, но не до 100 px а до бесконечности.
Что тут не так?
Вот такой простенький код.
function run(id){
  var maxheight = 100;
  var elem = document.getElementById(id);
  var h = elem.offsetHeight; 
      slide = function(){ 
          ++h;
          elem.style.height = h + 'px';
      }
  if (h > maxheight) clearInterval (intervalID);
  if (h < maxheight) intervalID = setInterval('slide()',1);     
}
Ответить с цитированием
  #13 (permalink)  
Старый 06.11.2008, 16:40
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 09.07.2008
Сообщений: 3,873

Таймер уничтожается в функции run, которая создав его, больше ни разу не вызывается.

Меняем высоту родительского блока, а высоту вложенного блока только спрашиваем через offsetHeight, а у вас работа идёт с одним элементом.

В принципе 2 блока не обязательно, можно и одним обойтись, только код будет по сложнее, а можно ещё со свойством clip: rect(…); попробовать сделать.

Последний раз редактировалось Octane, 06.11.2008 в 16:53.
Ответить с цитированием
  #14 (permalink)  
Старый 06.11.2008, 16:57
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

Сообщение от Octane Посмотреть сообщение
Таймер уничтожается в функции run, которая создав его, больше ни разу не вызывается.
действительно, сам догадался, не успел написать. но Вам все равно спасибо.
Сообщение от Octane Посмотреть сообщение
а у вас работа идёт с одним элементом.
ну да. пока такую задачу и ставил. :-)

Вот как раз спросить хотел. На сколько принципиально использование двух блоков. и почему высоту надо менять именно у внешнего
Ответить с цитированием
  #15 (permalink)  
Старый 06.11.2008, 17:21
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 09.07.2008
Сообщений: 3,873

Сообщение от twolf Посмотреть сообщение
На сколько принципиально использование двух блоков.
Просто при использовании 2-х блоков появляется возможность сделать так, чтобы контент был скрыт сразу же после загрузки CSS, хотя есть и недостаток, пользователи с выключенным JavaScript не смогут увидеть такой текст, им придётся выключить ещё и CSS Да и верстальщики обычно делают подобные вещи из двух блоков, семантика тут особо не нарушается. В случае с одним блоком, его содержимое скрывается немного позднее (обычно), в момент когда срабатывает JavaScript, потому что надо запомнить высоту. Если эти блоки довольно большие, то возникает неприятный эффект с дёрганьем страницы. Недостаток в том, что нужно будет где-то хранить высоту этих блоков и обновлять её каждый раз при изменении содержимого. В общем надо выбирать по ситуации, какой из способов наиболее подходящий. Есть ещё способ с использованием абсолютно позиционированных блоков и свойства clip, но я сам не пробовал реализовать такой эффект с его помощью.
Сообщение от twolf Посмотреть сообщение
почему высоту надо менять именно у внешнего
потому что у него задано свойство overlow: hidden; и для того, чтобы потом знать на какую высоту разворачивать этот блок, спросив высоту вложенного.
Ответить с цитированием
  #16 (permalink)  
Старый 06.11.2008, 18:01
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

Octane, а тестовые задания еще есть?
Ответить с цитированием
  #17 (permalink)  
Старый 06.11.2008, 19:23
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от Octane
ользователи с выключенным JavaScript не смогут увидеть такой текст, им придётся выключить ещё и CSS
http://harisov.livejournal.com/63790.html
Ответить с цитированием
  #18 (permalink)  
Старый 06.11.2008, 21:09
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 09.07.2008
Сообщений: 3,873

Сообщение от twolf Посмотреть сообщение
Octane, а тестовые задания еще есть?
Ну еще с градиентом в тексте есть :-) в прикреплённом файле.


Сообщение от Kolyaj
http://harisov.livejournal.com/63790.html
Ну да это может помочь в большинстве случаев, хотя мне не особо нравится идея писать разные версии CSS для пользователей с включенным JavaScript и нет, но когда безвыходная ситуация, пользуюсь этой техникой.
Вложения:
Тип файла: zip gradient.zip (1.7 Кб, 4 просмотров)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать локальную переменную глобальной?? Дмитрий Общие вопросы Javascript 8 02.11.2010 02:33
Как сделать такую галерею crisco Events/DOM/Window 4 23.12.2008 15:28
как сделать гиперсылку на объект javascript??? kos_walker Общие вопросы Javascript 3 30.09.2008 05:58
как сделать ссылку перехода на скрипт bazhan Общие вопросы Javascript 6 04.09.2008 09:56
Как сделать, что бы изображения пропадали. Dronch Элементы интерфейса 7 28.08.2008 20:55