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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите подправить скрипт 
:(
    Опции темы
BASILIO
  Дата 18.7.2011, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Koté-CAH
*


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

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



Написал сам:
Код

var func_fade = null;
var func_fade_ring = null;
var fade_speed = 25;
var fade_step = 0.1;
var act_opacity = null;
var new_opacity = null;
var fade_obj = null;
var fade_direction = null;
func_fade = function(obj,direction)
    {
    fade_obj = obj;
    fade_direction = direction;
    func_fade_ring = function()
        {
        act_opacity = document.defaultView.getComputedStyle(fade_obj, null).opacity;
        switch(fade_direction)
            {
            case 0:
                {
                if(act_opacity > 0)
                    {
                    new_opacity = parseFloat(act_opacity) - parseFloat(fade_step);
                    fade_obj.style.opacity = parseFloat(new_opacity);
                    setTimeout('func_fade_ring()',fade_speed);
                    }
                else
                    {
                    fade_obj.style.display = 'none';
                    }
                break;
                }
            case 1:
                {
                if(document.defaultView.getComputedStyle(fade_obj, null).display == 'none')
                    {
                    fade_obj.style.opacity = 0;
                    fade_obj.style.display = 'block';
                    }
                if(act_opacity < 1)
                    {
                    new_opacity = parseFloat(act_opacity) + parseFloat(fade_step);
                    fade_obj.style.opacity = parseFloat(new_opacity);
                    setTimeout('func_fade_ring()',fade_speed);
                    }
                break;
                }
            }
        }
    func_fade_ring();
    }

всё вроде как работает, но если быстро два раза вызвать функцию, то вариаблы, перекрывают одна другую. Если инициализировать их внутри функции "func_fade" то таймер, когда пытается вызвать функцию, пишет, что не найдена вариабла вообще (
PM   Вверх
Stolzen
Дата 18.7.2011, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 4
Всего: 48



Чтобы вариаблы не перекрывали друг друга, можно использовать вот такую конструкцию

Код

(function() {
    var var1;
    var var2;
})();

// тут var1 будет недоступна
var1


Таким образом у кода будет свой scope


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
BASILIO
Дата 18.7.2011, 17:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Koté-CAH
*


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

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



Stolzen, Не совсем понял, где иммено, можешь мой код с поправкой перепостить?
PM   Вверх
Stolzen
Дата 18.7.2011, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 4
Всего: 48



Посмотрел код внимательнее.
В вашем случае лучше использовать вот это:
http://www.switchonthecode.com/tutorials/j...-fade-animation

А еще лучше - использовать что-то типа jQuery. 


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
BASILIO
Дата 18.7.2011, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Koté-CAH
*


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

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



А нельзя таймер создовать как-нибудь внутри функции, чтоб он за её пределы не выходил?
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




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


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

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