• Поиск по форумам
  •  
      Этот форум закрыт. Новый форум располагается по адресу http://forum.use.ru  

      Nordnet Форум
      Городской форум
      Господа сайтостроители,...
     
    Страницы: 1 2
    Автор Тема:  Господа сайтостроители,...
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 12-01-2003 12:39    
    ...помогите справиться с элементарными вещами.
    Как можно сделать, чтобы при наведении на ячейку таблички мышиного курсора, она меняла цвет фона.
    Мне пока ясно лишь то, что есть у каждого объекта странички свойство "OnMouseOver". Есть и другие события, ессно, но меня интересует именно это, коль скоро оно напрямую связано с наведением курсора.
    А что дальше? Мона без скриптов обойтись, или фигвам?
    Если нельзя, то какие объекты и с какими свойствами нужно применить в функции, чтобы сменить фон ячейки?
    Force 

    регистрация: 06-12-2001 в 00:09
    сообщений: 20128

    отправлено 12-01-2003 12:55    
    Без скриптов - нельзя, если только не извращаться типа "ссылка на ячейку таблицы"
    Подробнее про функции, можно так:
    <td width="100" bgcolor="#555577" align="center"
    onMouseOver="this.style.background='#5C61F3'"
    onMouseOut="this.style.background='#555577'"
    onClick="window.location.href='/'">Ссылка</td>
    

    Это все равно жабаскрипт.
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 12-01-2003 14:23    
    2 Force:
    Сэнькс. Попробую. А я типа такого делал:
    .normalcell {
    	BACKGROUND-COLOR: #999999
    }
    .lihgtcell {
    	BACKGROUND-COLOR: #FFFFFF
    }
    ...
    function chgBgcolor() {
    	about.classname="lightcell";
    }
    ...
    <td class="normalcell" id="about"  align="center" onMouseOver="chgBgcolor">
    ...
    


    И не сработало :( Что не так:-?
    Степан Капуста 

    регистрация: 14-11-2001 в 09:37
    сообщений: 16766

    отправлено 12-01-2003 14:26    
    В функции about попробуй заменить на self или this
    Граф Дракула 

    регистрация: 17-10-2002 в 20:19
    сообщений: 3849

    отправлено 12-01-2003 14:29    
    Ну раз про HTML пошел разговор, то как сделать кнопку-ссылку?
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 12-01-2003 14:29    
    2 Степан:
    А как же id объекта? Ведь "about" однозначно указывает на ячейку, поскольку это ее идентификатор. А this и self указывает лишь на объект, в пределах контекста которого ты находишься...
    Степан Капуста 

    регистрация: 14-11-2001 в 09:37
    сообщений: 16766

    отправлено 12-01-2003 14:30    
    А тут и будет self... Или вводи фукцию в объект...
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 12-01-2003 14:31    
    2 Граф:
    Кнопка -- элемент форм. Я такое еще не проходил ;-) Но считаю, что излишне наворачивать страничку кнопками...
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 12-01-2003 14:33    
    2 Степан:
    Т.е. ты предлагаешь типа: self.classname="lightcell" ?

    Дело в том, что функция находится вне пределов видимости объекта "td" (ячейки)...
    Граф Дракула 

    регистрация: 17-10-2002 в 20:19
    сообщений: 3849

    отправлено 12-01-2003 14:34    
    2 SGAIL
    Я делал кнопку, когда на неё мышей новодишь, там снизу ссылка показывается, а когда жмешь. то ничего не происходит!
    Степан Капуста 

    регистрация: 14-11-2001 в 09:37
    сообщений: 16766

    отправлено 12-01-2003 14:35    
    А не судьба просто в ячейке написать то, что Force написал? Просто я жабаскрипом не особо...
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 12-01-2003 14:39    
    2 Степан:
    Да я попробую конечно. Просто, уж если пошло дело со скриптами, то лучше всего их впоследствии вынести в отдельный файл...
    Граф Дракула 

    регистрация: 17-10-2002 в 20:19
    сообщений: 3849

    отправлено 12-01-2003 14:42    

    12-01-2003 14:31 сообщение от SGAIL:
    «2 Граф:
    Кнопка -- элемент форм. Я такое еще не проходил ;-) Но считаю, что излишне наворачивать страничку кнопками...»


    А ты где-то этому обучаешься? Я по энциклопедии, да разбирае чужие странички в Фронт Пэйдже!
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 12-01-2003 14:44    
    2 Граф:
    Я тоже разбираю странички+Macromedia DreamWeaver 6...
    Force 

    регистрация: 06-12-2001 в 00:09
    сообщений: 20128

    отправлено 12-01-2003 14:49    
    2 Граф:
    делай форму, в action урлю, на которую нужна ссылка, тип кнопки Submit, и все пошлется.
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 12-01-2003 14:56    
    2 Force:
    А я? А мне? Тык ка мне "вынести" код из объекта?
    Force 

    регистрация: 06-12-2001 в 00:09
    сообщений: 20128

    отправлено 12-01-2003 15:02    
    about.style.background=""
    Про classname - ничего не скажу, эксплорер выкидывает undefined, а доки читать в лом.
     
    Сообщение было изменено автором 12-01-2003 в 15:04
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 12-01-2003 15:04    
    2 Force:
    about.class.background="lihgtcell" в мем случае?
    Force 

    регистрация: 06-12-2001 в 00:09
    сообщений: 20128

    отправлено 12-01-2003 15:05    
    2 SGAIL:
    about.style.background="white"
    В твоем случае (переправил с class на style, очепятка вышла).
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 12-01-2003 15:08    
    2 Force:
    А почему "white"? Ведь я могу сменить используемый класс стиля, а не конкретный цвет указывать? Или нет?
    Force 

    регистрация: 06-12-2001 в 00:09
    сообщений: 20128

    отправлено 12-01-2003 15:20    
    Вообще-то да :))
    старый стал, забывать начал.
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 12-01-2003 15:53    
    2 Force:
    Тем не менее спасибо. Сейчас попробовал такое:
    <td  class="normalcell" align="center"
    onMouseOver="this.style.background='lightcell'"
    onMouseOut="this.style.background='normalcell'">
    <a  class="mainmenu" href="index.html"
    tabindex="1">О сайте</a>
    


    Цвет фона меняется (уже ОК), но обратно не возвращается, и браузер говорит: "Script Error!" :-(
    Опять что-то не так сделал?
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 12-01-2003 16:01    
    PS. "Вынесенный" скрипт не хочет срабатывать:( Что за наваждение:-?
    Force 

    регистрация: 06-12-2001 в 00:09
    сообщений: 20128

    отправлено 12-01-2003 16:16    
    <html><head><script>
    function chgBgcolor(v) {
    	if(v==1) about.style.background='red';
    	else about.style.background='green';
    
    }
    </script></head><body>
    <table>
    <tr>
    <td class="normalcell" id="about" align="center" onMouseOver="chgBgcolor(1)"
    onMouseOut="chgBgcolor(0)">fdfsd</td>
    </tr>
    </table>
    </body>
    </html>
    

    Такой скрипт работает, а про стили он ругается, как указывать - не помню.
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 12-01-2003 16:26    
    2 Force:
    Блин, твой скрип работает. А в моем коде со стилями не хочет. Ну, ладно, еще поковыряюсь сегодня. Может додую, что к чему...

    PS. Интересно, что Ява (Java) -- голимый С++...
    Граф Дракула 

    регистрация: 17-10-2002 в 20:19
    сообщений: 3849

    отправлено 12-01-2003 20:15    
    А тут чё не разреенные тегши вообще удаляються?
     
    Сообщение было изменено автором 12-01-2003 в 20:19
    Sokol 

    регистрация: 13-11-2001 в 16:30
    сообщений: 2607

    отправлено 12-01-2003 20:32    

    PS. Интересно, что Ява (Java) -- голимый С++...


    Не путай Java и JavaScript совршенно разные вещи. Java похож на Си++ в смыле синтаксиса, декларации переменных, итд, но у него совершенно другая идеология. Например другая реализации множественного наследования, пакеты как способ разделения пространства имен, ну много еще чего...

    P.S. Почему многие считают, что Java и JavaScript ожно и тоже???
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 13-01-2003 12:25    
    2 Sokol:
    Это лишь вопрос терминологии. А вообще-то я и имел ввиду именно синтаксис, объектное ориентирование и доступ к членам, методам и своиствам объектов...

    Кстати, парился вчера пол-вечера, а ларчик, как говориться, выделки не стоил :)
    Оказывается, я просто свойство .classname не верно писАл. Нужно было .className писАть, и тогда все пучком. Тем не менее спасибо Force'у, за то, что показал более упрощенный синтаксис, и Степану, который, кстати, оказался прав, говоря про указатель "this". Просто он не договорил, а я не додумал (Force надоумил, спасибо).
    Дело в том, что в моем примере с идентификатором объекта "this" не сработает. Но ведь можно указатель "this" передать в функцию (chgBgcolor(this)), и тогда объект (в моем случае ячейка таблицы) становится видимым в контексте функции. Причем в этом случае функция становится более универсальной: ведь через "this" туда можно передать указатель на любой объект.
    Ладно, закругляюсь, вижу, что устали читавши :-)
    Кому интересно, вот код (можете юзать):
    <html>
    <head>
    <meta http-equiv="Content-Type"
    content="charset=windows-1251">
    <style >
    .normalcell {
     BACKGROUND-COLOR: #999999
    }
    .lightcell {
     BACKGROUND-COLOR: #CCCCCC
    }
    </style>
    <script language="JavaScript">
     function chgBgcolor(src,on) {
      if(on==1) src.className="lightcell";
      else src.className="normalcell";
    }
    </script>
    </head>
    <body>
     <table>
       <tr>
        <td class="normalcell" align="center"
    onMouseOver="chgBgcolor(this,1)"
    onMouseOut="chgBgcolor(this,0)">Иди к Васе
        </td>
       </tr>
       <tr>
        <td class="normalcell" align="center"
    onMouseOver="chgBgcolor(this,1)"
    onMouseOut="chgBgcolor(this,0)">Пошел на...
        </td>
       </tr>
     <table>
    </body>
    </html>
    
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 13-01-2003 18:54    
    Еще вопрос: а можно ли передать в функцию (скрипт) общее событие для мыши (типа MouseEvents(X,Y,Button)), и обрабатывать его прямо в функции, в зависимости от контекста объекта, выполнившего вызов события?
    А то громоздско прописывать в каждой ячейке "onMouseOver", "onMouseOut", "onMouseDown", "onMouseUp", "onClick", "onDoubleClick"... Кода громадье...
    Force 

    регистрация: 06-12-2001 в 00:09
    сообщений: 20128

    отправлено 13-01-2003 21:25    
    2 SGAIL:
    Вроде как-то можно было.
    толи в body прописать что-то типа OnMouseOver for td, толи еще как, это я уже не помню.
    Неужели у тебя так много таких ячеек, что сложно нажать Crtl-Ins, Shift-Ins??
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 13-01-2003 23:11    
    2 Force:
    Да мне не сложно, но код-то "пухнет", а хочется страничку сделать "легкую"...
    Force 

    регистрация: 06-12-2001 в 00:09
    сообщений: 20128

    отправлено 13-01-2003 23:23    
    2 SGAIL:
    1 Кб без сжатия качается менее секунды. Если ты умудришься наставить таких тегов на килобайт....
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 13-01-2003 23:25    
    2 Force:
    Ладно, убедил :)

    PS. Проверь почту.
    Степан Капуста 

    регистрация: 14-11-2001 в 09:37
    сообщений: 16766

    отправлено 14-01-2003 10:04    

    13-01-2003 18:54 сообщение от SGAIL:
    «Еще вопрос: а можно ли передать в функцию (скрипт) общее событие для мыши (типа MouseEvents(X,Y,Button)), и обрабатывать его прямо в функции, в зависимости от контекста объекта, выполнившего вызов события?»


    По-моему, нет. Кстати, что тебе дадут X и Y - в разных браузерах при разных размерах окон у разных объектов X и Y будут различными...
    Svan 

    регистрация: 12-11-2001 в 17:25
    сообщений: 3141

    отправлено 14-01-2003 10:09    
    Так назначить обработчик для события:
    <SCRIPT FOR=object EVENT=onmouseover>
    </SCRIPT>
    

    По-моему, в Mozilla'х/Netscape'ах не работает
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 14-01-2003 11:58    
    2 Степан:
    В данном случае, по-моему, используются относительные координаты (в пределах разрешения окна), и координаты X и Y тоже (обычно) берутся в пределах конкретного объекта, для которого обрабатывается событие. По-крайней мере в языках высокого уровня (С, Дельфи, Васик) так принято...

    2 Svan:
    Сэнькс, попробую. Насчет совместимости Дримвэвэр сам подскажет :)
    Степан Капуста 

    регистрация: 14-11-2001 в 09:37
    сообщений: 16766

    отправлено 14-01-2003 20:03    
    2 SGAIL: если бы все эти координаты и прочее как в Delphi работали,и самое главное - ОДИНАКОВО на всех платформах, тогда бы не было проблем...
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 14-01-2003 20:25    
    2 Степан:
    Ну, может быть... может быть...
    Степан Капуста 

    регистрация: 14-11-2001 в 09:37
    сообщений: 16766

    отправлено 14-01-2003 20:30    
    2 SGAIL: и вот по этой причине жаба-скрип должен умереть...
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 14-01-2003 20:35    
    :-) Степан, я не против. Да-здравствует ActiveX! Ура!!
    Степан Капуста 

    регистрация: 14-11-2001 в 09:37
    сообщений: 16766

    отправлено 14-01-2003 20:37    

    14-01-2003 20:35 сообщение от SGAIL:
    «:-) Степан, я не против. Да-здравствует ActiveX! Ура!!»


    И этому место рядом с жабой... И флэш туда же... В смысле в интернет-технологиях...
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 14-01-2003 20:38    
    А что тогда останется? XML:-?
    Степан Капуста 

    регистрация: 14-11-2001 в 09:37
    сообщений: 16766

    отправлено 14-01-2003 20:42    

    14-01-2003 20:38 сообщение от SGAIL:
    «А что тогда останется? XML:-?»


    Голый HTML с GIF/JPEG/PNG картинками, генерируемый Server-Side...
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 14-01-2003 20:45    
    А-а-а:) Иш ты куда хватил. Сервант ведь должен знать, что и как ты хочешь показать на страничке.
    Степан Капуста 

    регистрация: 14-11-2001 в 09:37
    сообщений: 16766

    отправлено 14-01-2003 20:51    
    Согласен. Должен. Для этого есть:
    1. поле QUERY_STRING
    2. запросы типа POST
    3. cookies
    4. PHP-сессии
    5. сейчас придет Sokol, еще чего-нибудь в этот список добавит...
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 14-01-2003 20:54    
    Ну, блин, завалил меня терминами:) Я еще только в подготовительную группу хожу, а ты мне про высшую материю ;-))
    Степан Капуста 

    регистрация: 14-11-2001 в 09:37
    сообщений: 16766

    отправлено 14-01-2003 20:55    

    14-01-2003 20:54 сообщение от SGAIL:
    «Я еще только в подготовительную группу хожу, а ты мне про высшую материю»


    Дак вот, пока ты в подготовишках ходишь: забей на жабу-скрип, а то потом трудно отвыкать будет. И пиши не в Блокноте...
    Степан Капуста 

    регистрация: 14-11-2001 в 09:37
    сообщений: 16766

    отправлено 14-01-2003 20:56    
    P.S. Про терминологию:
    Сынок первоклашка спрашивает у папы академика:
    - Папа, а как цифра "восемь" пишется?
    - Элементарно, сынок. Знак "бесконечность", повернутая на минус пи пополам... ;-)))
    SGAIL 

    регистрация: 27-03-2002 в 11:59
    сообщений: 11749

    отправлено 14-01-2003 20:58    
    :-))
    Sokol 

    регистрация: 13-11-2001 в 16:30
    сообщений: 2607

    отправлено 14-01-2003 23:54    
    2Степан - сам JavaScript не люблю использовать. Максимум для чего использую - это проверка форм на стороне юзера, что бы его не нагружать релоадом страницы когда он сделал всего одну ошибку... Типа предупредить надо...

    2SGAIL - согласен со Степаном, детство это все... Тебе реально это нужно? К тому же я теперь еще частенько lynx,ом хожу, я все равно не увижу твоих мигающих ячеек, но иногда конечно можно сделать, только что бы работало везде и не напрягало...

    XML, кстати очень неплохя технология, только сам голый XML из себя ничего не представляет - всего лишь способ хранить информацию. А вот связка XML+XSLT - это сила, причем, увеличивающая свою мошь с большой скоростью...

    Вот к примеру и я и Степан используем Smarty (шаболнный движок, для отделения PHP кода от HTML), но я уже жо*ой чувствую, что это лишь пародия на XML+XSLT.

    Как вам такой вариант использования XML.

    1. SQL-запрос получает не голые данные, а данные в формате XML (PHP это могет)

    2. XML данные обрабатываются при помощи XSLT процессора, генерируя готовую HTML страницу, которую можно отдать пользователю. Заметьте в этом случае XSLT полностью выполняет функции Smarty + добавляет еще много фич... А самое главное XSLT процессор написан на Сях, а Smarty на PHP, в чем разница рассказывать не надо:-)
    Кстати один умник написал модуль на сях для PHP как раз для целй разделения кода и шаблона, хорошая разработка намой взгляд... Еще бы хостеры знали о ней:(

    Вместо PHP мог быть любой язык (Java, Perl, ASP)

    Че та я разошелся...:-)
    Страницы: 1 2