Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > HTML и CSS
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.02.2011, 13:26   #1
Ghost3
Ученик в c++
Форумчанин
 
Аватар для Ghost3
 
Регистрация: 28.02.2011
Сообщений: 162
Радость Html картинка

Здрасьте!
У меня такой вопрос: как сделать картинку в теге <img src="***"> так, шобы при нажатии X раз она менялась на другую картинку.
Помогите пожалуйста!
Ps: не судите мои знания строго. Я только изучаю Html.
Ghost3 вне форума Ответить с цитированием
Старый 28.02.2011, 14:36   #2
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Это вам уже javascript нужно изучать.
Максимум анимации от CSS и HTML(ниже 5 версии) можно получить используя псевдокласс :hover для элемента - т.е. при наведении курсора (но не клик!) на блок с фоновым изображением (ваша картинка) можно его изменить динамически.

Последний раз редактировалось Cronos20; 28.02.2011 в 14:39.
Cronos20 вне форума Ответить с цитированием
Старый 28.02.2011, 15:15   #3
Ghost3
Ученик в c++
Форумчанин
 
Аватар для Ghost3
 
Регистрация: 28.02.2011
Сообщений: 162
По умолчанию

Ну, тогда...
А можно javascript?
Ghost3 вне форума Ответить с цитированием
Старый 28.02.2011, 20:31   #4
Ghost3
Ученик в c++
Форумчанин
 
Аватар для Ghost3
 
Регистрация: 28.02.2011
Сообщений: 162
Радость

Я тут поискал немного, нашел в одной теме скрипт и немного переделал
Код:
<script language="JavaScript">
var state = false;

function change(s)
{
 if (s)
 {
 document.getElementById('image').src = "1.gif";
 }
 else
 {
 document.getElementById('image').src = "2.gif";
 }
 state = s;
}
</script>

<img src="1.gif" onclick="change(!state);" id="image" border="2"/>
Только мне не нравится то, что кликнуть достаточно 1 раз. Как сделать, чтоб кликать нужно было... раза 5?
Ghost3 вне форума Ответить с цитированием
Старый 01.03.2011, 10:20   #5
xDyPx
Форумчанин
 
Аватар для xDyPx
 
Регистрация: 21.01.2009
Сообщений: 148
По умолчанию

Приблизительно так:
Код:
<script language="JavaScript">
var state = false;
var i=0; //создаем новую переменную, в которой будет храниться число кликов
function change(s)
{
 i++;//при клике увеличиваем значение этой переменной
 if(i==5)//если кликнули сколько раз нам нужно, то меняем картинку
 {
 if (s)
  {
   document.getElementById('image').src = "1.gif";
  }
  else
  {
   document.getElementById('image').src = "2.gif";
  }
  state = s;
 }
}
</script>
МОЙ САЙТ
Компьютер позволяет решать все те проблемы, которые до появления компьютера не существовали.
xDyPx вне форума Ответить с цитированием
Старый 01.03.2011, 12:19   #6
Ghost3
Ученик в c++
Форумчанин
 
Аватар для Ghost3
 
Регистрация: 28.02.2011
Сообщений: 162
По умолчанию

Спасибо, но... где-то ошибка вроде.
Ghost3 вне форума Ответить с цитированием
Старый 01.03.2011, 19:17   #7
Ghost3
Ученик в c++
Форумчанин
 
Аватар для Ghost3
 
Регистрация: 28.02.2011
Сообщений: 162
Печаль

Нашел скрипт, он просто меняет при нажатии на следующую картинку, помогите пожалуйста разобраться школьнику:
Код:
function changeImage(imageId) {
    var allImages=new Array()
    allImages[0]="img/54.jpg" //и т. д., в массив записиваешь пути к картинкам
    var imageNumber=0
    var imageObj=document.getElementById(imageId)
    function changingImage() {
        imageNumber++
        if (imageNumber==allImages.length) {
            imageNumber=0
        }
        imageObj.src=allImages[imageNumber]
    }
    imageObj.onclick=changingImage
}
Никак не пойму, куда вписывать пути к картинкам.
Само собой ясно, что img/54.jpg надо заменить на свое... а дальше что?

Последний раз редактировалось Ghost3; 01.03.2011 в 19:21.
Ghost3 вне форума Ответить с цитированием
Старый 02.03.2011, 08:34   #8
Wicort
Форумчанин
 
Аватар для Wicort
 
Регистрация: 04.08.2009
Сообщений: 684
По умолчанию

Написано же
Код:
allImages[0]="img/54.jpg"; //и т. д., в массив записиваешь пути к картинкам
соответственно продолжаете дальше
Код:
allImages[1]="img/55.jpg";
allImages[2]="img/56.jpg";
allImages[3]="img/57.jpg";
и так далее.
И не забывайте ставить точку с запятой.
Еслия Вам помог, не поленитесь нажать на весы и оставить отзыв. Это не займет много времени, но даст понять, что я старался не зря =)
Мой ник зарегистрирован, а твой?
Wicort вне форума Ответить с цитированием
Старый 02.03.2011, 12:44   #9
Ghost3
Ученик в c++
Форумчанин
 
Аватар для Ghost3
 
Регистрация: 28.02.2011
Сообщений: 162
По умолчанию

Спасибо!
Только опять где-то че-то не то. Не работает.
Код:
<script language="JavaScript">
function changeImage(imageId) {
    var allImages=new Array()
        allImages[0]="diz/1.gif";
        allImages[1]="diz/2.gif";
        allImages[2]="diz/3.gif";
        allImages[3]="diz/4.gif";
        allImages[4]="diz/5.gif";
    var imageNumber=0
    var imageObj=document.getElementById(imageId)
    function changingImage() {
        imageNumber++
        if (imageNumber==allImages.length) {
            imageNumber=0
        }
        imageObj.src=allImages[imageNumber]
    }
    imageObj.onclick=changingImage
}
</script>
Ghost3 вне форума Ответить с цитированием
Старый 02.03.2011, 13:02   #10
Cronos20
Форумчанин
 
Регистрация: 08.07.2010
Сообщений: 679
По умолчанию

Может вы все-таки огласите какую ошибку выдает браузер, а заодно покажете как и где вы вызываете changeImage(imageId) .... потому что я думаю вы ее пытаетесь вызывать как в первых постах с другим параметром, а я бы вызывал как-то так:
Код:
<img src="1.gif" onclick="changeImage(this);" border="2"/>
И избавился бы в этом случае от лишнего
var imageObj=document.getElementById(im ageId).
Поэтому надо смотреть все целиком.
И еще что-то мне вложенные друг в друга функции не нравятся ...
Cronos20 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вывести код html из файла на страницу HTML Рамирас JavaScript, Ajax 1 25.07.2010 20:06