Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Функция увеличения шрифта 
V
    Опции темы
Miller_time
Дата 30.5.2008, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



Доброго времени дня и суток. Подскажите точ не так

Код

function theme_page()
{
   var count;
   var plus=0;
   if(plus=1)
   {
       alert("не правильно работает");
   }
   if(plus=0)
   {
   for(count=0; count<6; count++)
   {
     // alert(count);
      var n = document.getElementsByTagName("h6")[count];
      n.style.fontSize =14;
      if(count="6")
      {
          plus=1;
          return false;
      }
   }
   }
}

/// ВОт так вызываю функцию
      <li class='font3'><a href='#' onclick=\"theme_page(); return false;\" title='123' accesskey='M1'><i></i></a></li>

После прохода этой функции , почему то сразу срабатывает эта строка

Код

   if(plus=1)
   {
       alert("не правильно работает");
   }


По сути дела нада сделать что бы она срабаывала после второго нажатия, значения. ТОесть будет такая вещь что шрифт будет увиличиватся постпенно.


Заранее спасибо, если что то описал не так не пинайте сильно 2 рой день за скриптом.




--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
krundetz
Дата 30.5.2008, 14:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Код

<script>
function theme_page()
{
    var elements = null;
    elements = document.getElementsByTagName("h6");
    if(elements)
    {
        size = elements.length;
        for(var i = 0; i < size; i++)
        {
            elements[i].style.fontSize = 100;
        }
        return true;
    }
    else
    {
        return false;
    }
   
}
/// ВОт так вызываю функцию
</script>
<li class='font3' onclick="theme_page();">Увеличь привет</li>
<h6>Привет</h6>


Это сообщение отредактировал(а) krundetz - 30.5.2008, 14:42


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Pokoinik
Дата 30.5.2008, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 17.3.2007
Где: /dev/null

Репутация: нет
Всего: 3



мдя...
Код

function theme_page()
{
   var count;
   var plus=0;
   //а мне вот интересно, что может случиться с переменной plus, если мы в нее вогнали 0, зачем еще это проверять?
   /*
   это что-то типа:
   if(i==0) i=0;
   else i=i;
   //если стоит ноль, то пусть стоит ))
   */
   if(plus=1) // не правильно, тут нужно писать plus==1 , если вообще нужна эта проверка
   {
       alert("не правильно работает");
   }
   if(plus=0) //тож самое
   {
   for(count=0; count<6; count++) // а почему count<6, почему именно 6
   {
     // alert(count);
      var n = document.getElementsByTagName("h6")[count];
      n.style.fontSize =14;
      if(count="6")
      {
          plus=1;
          return false;
      }
   }
   }
}

оптимальнее будет так
Код

function theme_page()
{
var n = document.getElementsByTagName("h6");
for(var count=0; count<n.length; count++)
      n[count].style.fontSize =14;
}


Добавлено через 1 минуту и 16 секунд
krundetz, опередил  smile 


--------------------
ICQ: 490-993
Существует только 10 типов людей: те, которые понимают двоичную систему, и которые ее не понимают!!!
Опасайтесь людей верующих, ибо у них есть боги, которые им все прощают.

Делай или не делай! Никаких попробую!
Йода (Yoda), мастер-джедай
PM MAIL ICQ   Вверх
Miller_time
Дата 30.5.2008, 15:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 641
Регистрация: 8.9.2006
Где: Нижний Новгород

Репутация: нет
Всего: 1



так а как, все таки увеличивать при повторном нажатии ?

Добавлено через 1 минуту и 17 секунд
А все разобрался.


--------------------
Мы делаем игрыЗДЕСЬ
PM MAIL WWW ICQ   Вверх
krundetz
Дата 30.5.2008, 15:04 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Pokoinik
Код

for(var count=0; count<n.length; count++)

так как JavaScript скриптовый язык а не оптимизирующий компилятор у вас здесь вычисляется количество элементов при каждой итерации.


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
Pokoinik
Дата 30.5.2008, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 17.3.2007
Где: /dev/null

Репутация: нет
Всего: 3



krundetz, 
тогда можно так
Код

for(var count=0, var len = n.length; count<len; count++)

я вообще думал, что length это свойство массива, которое увеличивается на единицу при добавлении,
и уменьшается при удалении, а не пересчитывает массив каждый раз при чтении.. smile 
нигде в доках не встречал...
надо прогнать через прифилировщик...

Добавлено через 14 минут и 2 секунды
Код

<html>
<script type="text/javascript">
    var arr = new Array(1000000);
    function f() {
        for (var i=0;i<arr.length;i++ ) {
            arr[i] = 100;
        }
    }
    function f2() {
        for (var i=0,len = arr.length;i<len;i++ ) {
            arr[i] = 200;
        }
    }
</script>
<input type="button" onclick="f()"/>
<input type="button" onclick="f2()"/>
</html>

Профилировка на фаербаге дала след результаты:
       Calls Percent 'Own Time' Time Avg Min Max File
f    1    73.18%    5101.879ms    5101.879ms    5101.879ms    5101.879ms    5101.879ms
f2    1    26.81%    1869.227ms    1869.227ms    1869.227ms    1869.227ms    1869.227ms

krundetz, вы были правы


--------------------
ICQ: 490-993
Существует только 10 типов людей: те, которые понимают двоичную систему, и которые ее не понимают!!!
Опасайтесь людей верующих, ибо у них есть боги, которые им все прощают.

Делай или не делай! Никаких попробую!
Йода (Yoda), мастер-джедай
PM MAIL ICQ   Вверх
krundetz
Дата 30.5.2008, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 1
Всего: 69



Pokoinik это есть в литературе по компиляторам и интерпретаторам.
Код

for (var i=0,len = arr.length;i<len;i++ )

Обрабатывается так что ограничение есть и не меняется при итерациях.
Код

for(var count=0; count<n.length; count++)

Здесь же у нас ограничение вычисляемое и при каждой итерации переопределяется.
Цитата(Pokoinik)

length это свойство массива

так оно и есть.

Это сообщение отредактировал(а) krundetz - 30.5.2008, 16:18


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
SelenIT
Дата 30.5.2008, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

Репутация: 7
Всего: 401



Цитата(Pokoinik @  30.5.2008,  15:35 Найти цитируемый пост)
length это свойство массива

Насколько мне известно, это так и есть. Но операция доступа к свойству достаточно дорогостоящая (анализируется цепочка прототипов и т.д.), особенно это заметно почему-то именно в реализации из Gecko.

Добавлено через 1 минуту и 46 секунд
Цитата(Pokoinik @  30.5.2008,  14:51 Найти цитируемый пост)
n[count].style.fontSize =14;

Нужно приучаться всегда еще "px" дописывать (или другую нужную размерность). Иначе перестанет работать при подключении "взрослого" доктайпа.


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
AKS
Дата 31.5.2008, 07:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Участник форума
**


Профиль
Группа: Участник
Сообщений: 725
Регистрация: 20.9.2006

Репутация: нет
Всего: 52



Цитата(krundetz @  30.5.2008,  16:10 Найти цитируемый пост)
Обрабатывается так что ограничение есть и не меняется при итерациях.

Цитата(krundetz @  30.5.2008,  16:10 Найти цитируемый пост)
Здесь же у нас ограничение вычисляемое и при каждой итерации переопределяется.

"Ограничение" может и не "переопределяться" (если точнее, то условие может не меняться), если длина массива остается без изменений. Цикл отработает медленней из-за того, что на каждой итерации необходимо получить значение свойства length (лишнее выполнение оператора точка).

Цитата(SelenIT @  30.5.2008,  16:16 Найти цитируемый пост)
...операция доступа к свойству достаточно дорогостоящая (анализируется цепочка прототипов и т.д.)

Цепочка прототипов тут не нужна, т.к. length – это "личное" свойство массива.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0753 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.