Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.02.2020, 22:33
Интересующийся
Отправить личное сообщение для Texnarik Посмотреть профиль Найти все сообщения от Texnarik
 
Регистрация: 22.03.2016
Сообщений: 10

Почему не срабатывает java script второй код, если они одинаковы ?
Добрый вечер снова.
За сегодня вторая пробелма, и опять с главной страничкой.
Захотел чтобы текст у меня был (один блок) для ПК версии, второй блок для телефона. Сначала я просто скопировал блок и прописал медиа, но сразу проблема появилась, java script в блоке с текстом не сработал, и мне интересно почему ?
Если блоки поменять местами - верхний будет работать, а нижний не будет , почему ???

Вот весь код, и верхний и нижний блок:
<br>
<style>
@media (max-width:499px){
.hidew
{
display: none;
}
}
</style>
<div class="hidew">
<script data-ad-client="ca-pub-9202019319870521" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- здесь будет первая часть кода -->
<script type="text/javascript">
var message = "Speed-bux.ru - реклама и заработок";
var base_color = "#9cee90";
var style = "text-align: center; color:' + base_color + '; font-size: 34px;";
var color1 = "Crimson";
var color2 = "Powderblue";
var flashspeed = 99;
var flashingletters = 2;
var flashingletters2 = 2;
var flashpause = 0;
var n = 0;
if (document.all||document.getElementById){
   document.write('<div style="'+style+'">')
   for (m=0; m<message.length; m++)
   document.write('<span id="neonlight'+m+'">'+message.charAt(m)+'</span>')
   document.write('</div>')
}
else document.write(message)

function crossref(number){
   var crossobj=document.all? eval("document.all.neonlight"+number) :
   document.getElementById("neonlight"+number)
   return crossobj
}

function neon(){
   if (n==0){
    for (m=0; m<message.length; m++)
    crossref(m).style.color=base_color
    }
   crossref(n).style.color=color1
   if (n>flashingletters-1) { crossref(n-flashingletters).style.color=color2 }
   if (n>(flashingletters+flashingletters2)-1) {
   crossref(n-flashingletters-flashingletters2).style.color=base_color }
   if (n<message.length-1) { n++ }
   else{
    n=0
    clearInterval(flashing)
    setTimeout("start_color()",flashpause)
    return
    }
}
function start_color(){
   if (document.all||document.getElementById)
   flashing=setInterval("neon()",flashspeed)
}
start_color()
</script>

<!-- здесь будет вторая часть кода (сообщение) -->
<br>
<br>
<div id="mess_box" style="border: 1px solid black; width: 300px;
height: 105px; margin: 0 auto; background: #e6e6fa; font-family: Times New Roman;
font-size: 22px; text-align: center;"></div>

<script type="text/javascript">
var delay = 3000;
var text = new Array();
text[0] = "<b><br><br>Каждую неделю</b> <br><br>новые конкурсы<br>";
text[1] = "<br><br>2 вида серфинга<br><br> более 100 ссылок в сутки";
text[2] = "<b><br><br>2 бонуса от каптчи CatCut</b> <br><br>дают каждый час<br>";
text[3] = "<br>Конкурс рекламодателей</b> <br><br>конкурс рефералов<br><br>конкурс серфинга<br>";
text[4] = "<b><br><br>2 игры</b> <br><br>на настоящие деньги<br>";
text[5] = "<br><br><a href=\"https://speed-bux.ru/reg_easy.php\"><b>Регистрируйся</b></a>" +
"<br><br>Здесь зарабатывают деньги";
text[6] = "<br><br>Автовыплаты<br><br> PAYEER";
var mess = 0;

function change_mess() {
 if (mess>=text.length)
 mess = 0;
 document.getElementById("mess_box").innerHTML = text[mess];
 fade_color();
 mess++;
 setTimeout("change_mess();", delay);
}

frame = 20;
hex_r = 155;
hex_g = 255;
hex_b = 155;

function fade_color() {
if (frame>0) {
 hex_r -= 5;
 hex_g -= 5;
 hex_b -= 5;
 document.getElementById("mess_box").style.color = "rgb(" +
 hex_r + "," + hex_g + "," + hex_b + ")";
 frame--;
 setTimeout("fade_color();", 50);
} else {
 document.getElementById("mess_box").style.color="rgb(0, 155, 0)";
 frame = 20;
 hex_r = 155;
 hex_g = 255;
 hex_b = 155;
}
}

change_mess();
</script>
</div><br>




<style>
@media (min-width:500px){
.hide
{
display: none;
}
}
</style>
<div class="hide">
<script data-ad-client="ca-pub-9202019319870521" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- здесь будет первая часть кода -->
<script type="text/javascript">
var message = "Speed-bux.ru - реклама и заработок";
var base_color = "#9cee90";
var style = "text-align: center; color:' + base_color + '; font-size: 34px;";
var color1 = "Crimson";
var color2 = "Powderblue";
var flashspeed = 99;
var flashingletters = 2;
var flashingletters2 = 2;
var flashpause = 0;
var n = 0;
if (document.all||document.getElementById){
   document.write('<div style="'+style+'">')
   for (m=0; m<message.length; m++)
   document.write('<span id="neonlight'+m+'">'+message.charAt(m)+'</span>')
   document.write('</div>')
}
else document.write(message)

function crossref(number){
   var crossobj=document.all? eval("document.all.neonlight"+number) :
   document.getElementById("neonlight"+number)
   return crossobj
}

function neon(){
   if (n==0){
    for (m=0; m<message.length; m++)
    crossref(m).style.color=base_color
    }
   crossref(n).style.color=color1
   if (n>flashingletters-1) { crossref(n-flashingletters).style.color=color2 }
   if (n>(flashingletters+flashingletters2)-1) {
   crossref(n-flashingletters-flashingletters2).style.color=base_color }
   if (n<message.length-1) { n++ }
   else{
    n=0
    clearInterval(flashing)
    setTimeout("start_color()",flashpause)
    return
    }
}
function start_color(){
   if (document.all||document.getElementById)
   flashing=setInterval("neon()",flashspeed)
}
start_color()
</script>

<!-- здесь будет вторая часть кода (сообщение) -->
<br>
<br>
<div id="mess_box" style="border: 1px solid black; width: 300px;
height: 105px; margin: 0 auto; background: #e6e6fa; font-family: Times New Roman;
font-size: 22px; text-align: center;"></div>

<script type="text/javascript">
var delay = 3000;
var text = new Array();
text[0] = "<b><br><br>Каждую неделю</b> <br><br>новые конкурсы<br>";
text[1] = "<br><br>2 вида серфинга<br><br> более 100 ссылок в сутки";
text[2] = "<b><br><br>2 бонуса от каптчи CatCut</b> <br><br>дают каждый час<br>";
text[3] = "<br>Конкурс рекламодателей</b> <br><br>конкурс рефералов<br><br>конкурс серфинга<br>";
text[4] = "<b><br><br>2 игры</b> <br><br>на настоящие деньги<br>";
text[5] = "<br><br><a href=\"https://speed-bux.ru/reg_easy.php\"><b>Регистрируйся</b></a>" +
"<br><br>Здесь зарабатывают деньги";
text[6] = "<br><br>Автовыплаты<br><br> PAYEER";
var mess = 0;

function change_mess() {
 if (mess>=text.length)
 mess = 0;
 document.getElementById("mess_box").innerHTML = text[mess];
 fade_color();
 mess++;
 setTimeout("change_mess();", delay);
}

frame = 20;
hex_r = 155;
hex_g = 255;
hex_b = 155;

function fade_color() {
if (frame>0) {
 hex_r -= 5;
 hex_g -= 5;
 hex_b -= 5;
 document.getElementById("mess_box").style.color = "rgb(" +
 hex_r + "," + hex_g + "," + hex_b + ")";
 frame--;
 setTimeout("fade_color();", 50);
} else {
 document.getElementById("mess_box").style.color="rgb(0, 155, 0)";
 frame = 20;
 hex_r = 155;
 hex_g = 255;
 hex_b = 155;
}
}

change_mess();
</script>
</div>



И того я получаю все время работающий верхний блок в коде, а нижний нет, меняю места , опять верхний работает ,нижний нет.
Скрин кода в действии верхнего блока:
https://prnt.sc/r8o8a7
Скрин кода в действии нижнего кода:
https://prnt.sc/r8o8ky
Ответить с цитированием
  #2 (permalink)  
Старый 28.02.2020, 07:36
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от Texnarik
text[0] = "<b><br><br>Каждую неделю</b> <br><br>новые конкурсы<br>";
text[1] = "<br><br>2 вида серфинга<br><br> более 100 ссылок в сутки";
text[2] = "<b><br><br>2 бонуса от каптчи CatCut</b> <br><br>дают каждый час<br>";
text[3] = "<br>Конкурс рекламодателей</b> <br><br>конкурс рефералов<br><br>конкурс серфинга<br>";
text[4] = "<b><br><br>2 игры</b> <br><br>на настоящие деньги<br>";
text[5] = "<br><br><a href=\"https://speed-bux.ru/reg_easy.php\"><b>Регистрируйся</b></a>" +
"<br><br>Здесь зарабатывают деньги";
text[6] = "<br><br>Автовыплаты<br><br> PAYEER";
Это уже называется "говнокод"...
Ответить с цитированием
  #3 (permalink)  
Старый 28.02.2020, 07:37
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,118

Сообщение от Texnarik
все время работающий верхний блок в коде, а нижний нет, меняю места , опять верхний работает ,нижний нет
Все зависит от того как ты сделал эти "блоки" и как ты потом к ним обращаешься...
Ответить с цитированием
  #4 (permalink)  
Старый 28.02.2020, 08:03
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,692

Код действительно очень тяжело разбирать. Все вперемешку.
Не надо в одну кучу смешивать html, javascript и стили.
Но как минимум одна ошибка видна.
У вас 2 элемента с id="mess_box". Идентификатор должен быть уникальным.

И зачем два кода? Вы думаете, раз вы впихнули код в div с display:none, то его не будет?
Ничего подобного. Если в коде одинаковые переменные и функции с одинаковыми именами, то вторые просто переопределят первые.

Откуда взялся этот шевевр. Из учебников каких годов?
if (document.all||document.getElementById)
Где вы сейчас найдете браузер без getElementById? Он даже в Netscape 4 был. А может и раньше.
И document.all есть везде

Последний раз редактировалось voraa, 28.02.2020 в 08:25.
Ответить с цитированием
  #5 (permalink)  
Старый 28.02.2020, 08:41
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,692

Вот смотрите, что вы делаете

<div class="hidew">
<script data-ad-client="ca-pub-9202019319870521" async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- здесь будет первая часть кода -->
<script type="text/javascript">
//... bla-bla-bla
function start_color(){
   if (document.all||document.getElementById)
   flashing=setInterval("neon()",flashspeed)
}
start_color()
</script>


Как вы думаете, когда начнет выполняться start_color() ?
Сразу! Во время парсинга страницы. Браузер еще не разберет оставшуюся часть кода, но уже вызовет эту функцию.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему не срабатывает анимация для transform если её добавить с помощью js Mixeyka Элементы интерфейса 4 11.07.2016 11:16
Как вызвать свою функцию из «чужого» кода в Java Script, не переписывая «чужой» код? korobochkin Библиотеки/Тулкиты/Фреймворки 2 19.07.2014 16:17
Подскажите код скрипта Java Script возрастающего числа nitimiaki (X)HTML/CSS 2 14.11.2012 10:20
Как (эффективно) изучать JavaScript? JSTalker Общие вопросы Javascript 33 23.12.2010 03:13