Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Нужна скрипт onclick..для пары картинок (https://javascript.ru/forum/dom-window/66599-nuzhna-skript-onclick-dlya-pary-kartinok.html)

yameck 26.12.2016 15:58

Нужна скрипт onclick..для пары картинок
 
Ребята, помогите пожалуйста человеку далекому от Java) Мне нужно реализовать на сайте такую штуку :
рядом друг с другом расположены две картинки. при клике на одну из них она сменяется другой и появляется надпись "вы ошиблись, попробуйте еще раз" кликаешь на надпись и возвращаешься обратно к выбору. а если выбираешь вторую картинку,то пара этих фото сменяется на новые две. и таких пары будет три.
Я так понял реализовать это можно Java. Но сам я смог только сделать чтоб одна картинка сменялась другой. Может у кого то есть похожий скрипт или дельные советы... сроки поджимают, поэтому прошу помощи тут. Спасибо за внимание!)

Dilettante_Pro 26.12.2016 16:28

yameck, плохо понял, но как-то так:
Выберите картинку:
<img id="i1" style= "width:100px;height:100px" src=""/>
<img id="i2" style= "width:100px;height:100px" src=""/>
<div id="mess" style="display:none">Вы ошиблись, попробуйте еще раз</div>
<script>
 var image1 = ["http://javascript.ru/cat/list/scriptaculous_54.png","http://javascript.ru/cat/list/dom.gif","http://javascript.ru/cat/list/firefox.gif"],
      image2 = ["http://javascript.ru/cat/list/jquery_54.png","http://javascript.ru/cat/list/event.gif","http://javascript.ru/cat/list/opera.gif"],
      i = 0;
        i1.src =  image1[i];
        i2.src =  image2[i];
  i1.onclick = function() {
       this.src = "http://javascript.ru/cat/list/donkey.gif";
       mess.style.display = "block";
  }
  i2.onclick = function() {
   if (i1.src != "http://javascript.ru/cat/list/donkey.gif") {
     if (i < 2 ) {
        i++;
        i1.src =  image1[i];
        i2.src =  image2[i];
     }
     else { alert("Вот и все");
        i = 0;
        i1.src =  image1[i];
        i2.src =  image2[i];
       }
    }
  }
  mess.onclick = function() {
      i1.src =  image1[i];
      mess.style.display = "none";
  }

</script>

Аууу 26.12.2016 16:40

<div id="viv1" onclick="per1()" style="background: White;font-size: 25px;color:red;text-align: center;" >
<img src="путь к файлу" alt="альтернативный текст">

</div>

<div id="viv2" onclick="per2()" style="background: White;font-size: 25px;color:red;text-align: center;" >
<img src="путь к файлу" alt="альтернативный текст">

</div>
<script type="text/javascript">

function per1(){
var a='<img src="путь к файлу" alt="альтернативный текст">'+"вы ошиблись, попробуйте еще раз";
document.getElementById("viv1").innerHTML =a;
}

function per2(){
var a='<img src="путь к файлу" alt="альтернативный текст">';
var b='<img src="путь к файлу" alt="альтернативный текст">';
document.getElementById("viv1").innerHTML =a;
document.getElementById("viv2").innerHTML =b;
}

</script>

yameck 26.12.2016 16:54

Ребята, спасибо вам огромное!!! Если вдруг будут вопросы по сео обращайтесь) помогу с радостью)

Dilettante_Pro 26.12.2016 17:07

Аууу, совет на будущее: лучше делать работающие примеры:)
<div id="viv1" onclick="per1()" style="background: White;font-size: 25px;color:red;text-align: center;" > 
<img src="http://javascript.ru/cat/list/scriptaculous_54.png" alt="альтернативный текст">

</div>

<div id="viv2" onclick="per2()" style="background: White;font-size: 25px;color:red;text-align: center;" >
<img src="http://javascript.ru/cat/list/jquery_54.png" alt="альтернативный текст">

</div>
<script type="text/javascript">

function per1(){
var a='<img src="http://javascript.ru/cat/list/donkey.gif" alt="альтернативный текст">'+"вы ошиблись, попробуйте еще раз";
document.getElementById("viv1").innerHTML =a;
}

function per2(){
var a='<img src="http://javascript.ru/cat/list/dom.gif" alt="альтернативный текст">';
var b='<img src="http://javascript.ru/cat/list/event.gif" alt="альтернативный текст">';
document.getElementById("viv1").innerHTML =a;
document.getElementById("viv2").innerHTML =b;
}

</script>

yameck 26.12.2016 17:33

Дико извиняюсь, но еще вопрос.. Воспользовался первым вариантом. А как сделать чтобы в конце цикла все повторялось заново?то есть был не пустой экран,а снова эти пары появились? и можно как то сделать чтобы эти картинки менять местами? то есть не всегда угадываю кликая на нижнее фото..а чтоб второй случай например ответ поменять местами?

Dilettante_Pro 26.12.2016 17:38

yameck,
Цитата:

Сообщение от yameck
А как сделать чтобы в конце цикла все повторялось заново?

Изменил пример в пост#2

Dilettante_Pro 26.12.2016 17:41

yameck,
Цитата:

Сообщение от yameck
и можно как то сделать чтобы эти картинки менять местами? то есть не всегда угадываю кликая на нижнее фото.

Еще бы знать, которая из картинок правильная...

yameck 26.12.2016 17:50

Цитата:

Сообщение от Dilettante_Pro (Сообщение 438992)
yameck,

Еще бы знать, которая из картинок правильная...

Тоже верно.. Еще раз большое спасибо! Вы меня очень выручили!

Dilettante_Pro 26.12.2016 18:34

Считаем, что второй массив картинок - правильный
Выберите картинку:
<img id="i1" style= "width:100px;height:100px" src=""/>
<img id="i2" style= "width:100px;height:100px" src=""/>
<div id="mess" style="display:none; border: 1px solid red; width:400px">Вы ошиблись. Нажмите, чтобы попробовать еще раз</div>
<script>
 var image1 = ["http://javascript.ru/cat/list/scriptaculous_54.png","http://javascript.ru/cat/list/dom.gif","http://javascript.ru/cat/list/firefox.gif"],
      image2 = ["http://javascript.ru/cat/list/jquery_54.png","http://javascript.ru/cat/list/event.gif","http://javascript.ru/cat/list/opera.gif"],
      i = 0;
  randomImage();

  var test = function() {
     if(this.classList.contains("wrong")) {
        this.src = "http://javascript.ru/cat/list/donkey.gif";
        mess.style.display = "block";
     }
     else {
        if (i < 2 ) {
           i++;
           randomImage();
        }
        else { alert("Вот и все");
            i = 0;
            randomImage();
        }
     }
  }
  i1.onclick = test;
  i2.onclick = test;

  mess.onclick = function() {
      document.querySelector(".wrong").src =  image1[i];
      mess.style.display = "none";
  }
function randomImage() {
   var r = Math.random();
   if (r < 0.5) {
        i1.src =  image1[i];
        i2.src =  image2[i];
        i1.classList.remove("right");
        i2.classList.remove("wrong");
        i1.classList.add( "wrong");
        i2.classList.add("right");
   }
   else {
        i2.src =  image1[i];
        i1.src =  image2[i];
        i2.classList.remove("right");
        i1.classList.remove("wrong");
        i2.classList.add("wrong");
        i1.classList.add("right");
   }
}
</script>


Часовой пояс GMT +3, время: 18:58.