Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Маааленький скриптик на яве))
 
 автор: mzpl   (18.03.2011 в 18:10)   письмо автору
 
 

Здравствуйте,уважаемые знатоки.
Помогите,пожалуйста, реализовать скрипт...
Есть кнопка,которая находится в меню:

<a href="http://www.localhost/sofia/index.php?action=showMainPageForum" style="color:#5c0144; text-decoration:none" ><img src="images/menu/forum1.png" onmouseover="this.src='images/menu/forum2.png';" onmouseout="this.src='images/menu/forum1.png';" /></a>


Нужно сделать так, чтобы при нажатии на этот пункт меню,делалось это:

<div id="boxfor">
{content}                                    
</div>


иначе

<div id="box">
{content}                                    
</div>

  Ответить  
 
 автор: Ирбис   (18.03.2011 в 19:18)   письмо автору
 
   для: mzpl   (18.03.2011 в 18:10)
 

Приведу пример как это можно сделать с использованием jQuery. Как это сделать без неё на чистом JavaScript я уже не помню :)
<html>
<head>
  <style type='text/css'>
    /*Стили для блока пока на кнопку не нажали*/
    DIV#box {
      ...
    }
    /*Дополнительные стили, которые должны быть применены к блоку когда на кнопку нажмут*/
    DIV.active {
      ...
    }
  </style>
  <!-- Сначала присоединим файл jQuery -->
  <script type='text/javascript' src='jquery.js'></script>
  <script type='text/javascript'>
    $(document).ready(function() {
      //При наведение курсора на изображение отрабатывает первая функция, после отведения - вторая. 
      //Каждая функция устанавливает своё значение атрибута src у изображения
      $("IMG#button").hover(function() {
        $(this).attr("src", "'images/menu/forum2.png");
      }, 
      function() {
        $(this).attr("src", "'images/menu/forum1.png");
      });//end of hover()
      //По клику на изображение отрабатывает эта функция, которая добавляет класс "active" блоку DIV#box
      $("IMG#button").click(function() {
        $(DIV#box).addClass("active");
      });//end of click()
    });//end of ready()
  </script>
</head>
<body>
  <img src="images/menu/forum1.png" id='button'  />
  <div id='box'>{content}</div>
</body>
</html>


Я немного изменил структуру идентификаторов/классов. Но можно и ваш вариант оставить, если он вам кажется более семантичным.

  Ответить  
 
 автор: mzpl   (18.03.2011 в 19:27)   письмо автору
 
   для: Ирбис   (18.03.2011 в 19:18)
 

Спасибо большое,буду пробовать)))

  Ответить  
 
 автор: Ирбис   (18.03.2011 в 19:44)   письмо автору
 
   для: mzpl   (18.03.2011 в 19:27)
 

Пожалуйста!
Я в своём примере разделил HTML и JavaScript код - так правильнее. Ещё лучше вынести JS код в отдельный файл, а в HTML странице просто его подключить после jQuery. При такой организации кода вам будет проще вносить изменения и представлять общую картину (особенно эта разница ощутима тогда, когда кода много).

Если же вам проще, когда JS и HTML смешаны друг с другом (как в первоначальном варианте), то можно переписать код так:
<html>
<head>
  <style type='text/css'>
    /*Стили для блока пока на кнопку не нажали*/
    DIV#box {
      ...
    }
    /*Дополнительные стили, которые должны быть применены к блоку когда на кнопку нажмут*/
    DIV.active {
      ...
    }
  </style>
  <!-- Сначала присоединим файл jQuery -->
  <script type='text/javascript' src='jquery.js'></script>
</head>
<body>
  <img src="images/menu/forum1.png" 
       id="button"
       onmouseover="$(this).attr('src', 'images/menu/forum2.png')"
       onmouseout="$(this).attr('src', 'images/menu/forum1.png')"
       onclick="$('DIV#box').addClass('active')"   />

  <div id="box">
    {content}
   </div>
</body>
</html>


Если что-то не будет получаться - пишите, разберёмся ;)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования