На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ElcnU, ANDLL, fatalist
Страницы: (3) [1] 2 3  все  ( Перейти к последнему сообщению )  
> <DIV>, filter: allpha, onMouseDown , JavaScript
    Проблема в следущем:
    Есть тэг ДИВ, мне надо чтобы он был полупрозрачным (те я использую filter: alpha(opacity=40);). Но загвоздка вот в чём: полупрозрачным он должен становится только при нажатии крысой на этот тэг, а onMouseDown работает только если у ДИВА нет "filter...", те как только я вставляю в описание ДИВа "фильтр..." онМаусДаун сразу перестаёт обрабатываться.
    Пробывал сначала делать opacity=100 - не работает, пробывал делать z-index (мне кажется чёто с этим должно быть связано) - тоже ноль имоций...
    ПОМОГИТЕ!!!!
      z-index отвечает за позиционирование слоев (то есть, за ось Z). Странно, что onmousedown не работает. Ты используешь DOM? А другие события использовать пробовал (mouseclick, например или mouseover)?
        нельзя клик, тк при онмаусап ДИВ должен опять стать непрозрачным....
          Я имелл ввиду, работает ли твой код вообще. Неужели дело именно в событии onmousedown? Протестируй так, чтобы он становился прозрачным при onmouseover, а видимым при onmouseout. Работает?
            <img...> работает, с дивом не пробовал... ща попробую....
              а можно ли в яваскрипте создать фильтр "налету"?, те в описании тэга фильтра нет, а когда надо он создаётся... и так же его убить?
                Вот поэтому я и спрашивал про DOM. Фильтр у тебя задается в CSS, ведь так? Тогда div'у присваиваем аттрибут id:
                ExpandedWrap disabled
                  <div id="the_div" onmousedown="filter_hi()" onmouseup="filter_lo()">...</div>

                А ЯваСкрипт выглядит так:
                ExpandedWrap disabled
                  function filter_hi() {
                  document.getElementById("the_div").style.filter = "alpha(opacity=40)"
                  }
                  function filter_lo() {
                  document.getElementById("the_div").style.filter = "alpha(opacity=0)"
                  }
                Сообщение отредактировано: Trustmaster -
                  я проверил с ДИВом - всё работеат, хотя я делал не много по другому(но смысл тот же). Но мне надо именно онМаусДаун!!!
                  а как насчёт фильтра "налету"?
                    Администраторам форума: черт бы побрал эту подсветку >:( По-прежнему портит код!

                    seelts, ты меня немножко не понял. Чтобы было совсем понятно, получай пример такого дива, как тебе нужен (надеюсь, разберешься что к чему). Смотри прикрепленный файл.
                    Прикреплённый файлПрикреплённый файлdiv_hilite.zip (0.55 Кбайт, скачиваний: 150)
                      во! то что мне надо!!! а есть способ убить фильтр через яваскрипт? те после того как первый раз произошёл маусдаун у дива появляется фильтр и он остаётся навсегда, а можно так чтоб после маусап не значение изменялось а весь фильтр удалялся?...

                      Добавлено в :
                      кстати необязательно делать id можно onMouseDown="filter_hi(this);" и в самой функции уже работать с параметром...
                        "Убить" фильтр нельзя. Можно сделать так:
                        ExpandedWrap disabled
                          document.getElementById("the_div").style.filter = ""

                        То есть "стереть".
                        Про ID: просто я предпочитаю DOM.
                          Цитата
                          Про ID: просто я предпочитаю DOM.

                          this - это тоже DOM!
                            Цитата
                            this - это тоже DOM!

                            Не обязательно. this работает и без поддержки DOM. this - всего лишь указатель на текущий объект. Слишком многое зависит от ситуации. В данном случае ты абсолютно прав :D.
                              Цитата Trustmaster @ 22.07.04, 10:34
                              "Убить" фильтр нельзя. Можно сделать так:...

                              можно:
                              .style.removeAttribute("filter");
                              спасибо всем у меня получилось, НО:
                              (между маусдаун и маусап обрабатывается маусмув)раньше маусмув обрабатывался замечательно, а тепер (когда есть прозрачность) он обрабатывается только когда мышь у границ ДИВа....
                              чё за беда?

                              Добавлено в :
                              я не понимаю разницу между CSS и DOM объясните пожалуйста
                                Разницы между CSS и DOM нет. DOM - это не стили, а "Dynamic Object Model". Это особая система классификации HTML (XML, XHTML и не только) в виде "дерева" объектов. К каждому объекту можно получить доступ: 1) Через тэг, 2) Через другой объект, 3) Через уникальный идентификатор. Применяется в основном для создания DHTML-содержимого.
                                А разница в том, что некоторые старые браузеры поддерживают CSS, но не поддерживают DOM.
                                Насчет беды с МаусМувом: скорее всего у тебя объекты перекрывают друг друга, и mousemove срабатывает там, где сам div ничем не перекрыт.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (3) [1] 2 3  все


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0354 ]   [ 15 queries used ]   [ Generated: 14.05.24, 23:34 GMT ]