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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 24.09.2014, 17:09   #1
Anorions
 
Регистрация: 24.09.2014
Сообщений: 5
По умолчанию Смена текста при нажатии на кнопку.

Добрый день всем. В JS и CSS я новенький, поэтому прошу помощи.
Имеется код:
Код:
Код:
<div style="text-align:left;">
<div id="type_text" class="box">
<script language="JavaScript">
var text = 'текст 1 текст1 текст 1.<br> '+
' ...текст 1 текст1 текст 1<br>'+ 
' текст 1 текст1 текст 1.'+ 
' текст 1 текст1 текст 1,'+ 
' текст 1 текст1 текст 1'+ 
' текст 1 текст1 текст 1';
i = 0;
function type(){
	i++;
	if( i <= text.length )
	if(text.substr(i-1,1)=='<'){ 
     document.getElementById("type_text").innerHTML +='<br>' 
    }
	else
	{ 
		document.getElementById("type_text").innerHTML = text.substr(0, i);
	}
	setTimeout( type, 20 );
}
type();
</script>
</div>
</div>
<div id="dalee">
<form>
<table style="height: 70%; width: 60%; margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: left;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<input onclick="changeBg(this);return false;" type="button" value="Назад" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</td>
<td style="text-align: right;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<input onclick="changeBg(this);return false;" type="button" value="Читать далее" /></td>
</tr>
</tbody>
</table>
</form>
</div>
При нажатии кнопки "Читать далее" должен появиться другой текст взамен старого в том же блоке, а при нажатии кнопки назад, должен появиться предыдущий текст. Прошу помощи и по возможности пример кодом и из за того, что новенький в этом всём, более простым языком объяснить.
P.S. если в этом коде что то смущает, поправьте, пожалуйста.
Anorions вне форума Ответить с цитированием
Старый 25.09.2014, 11:49   #2
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
<div style="text-align:left;">
<div id="type_text" class="box">
<script language="JavaScript">
var text = ['текст 1 текст1 текст 1.<br> '+
' ...текст 1 текст1 текст 1<br>'+ 
' текст 1 текст1 текст 1.'+ 
' текст 1 текст1 текст 1,'+ 
' текст 1 текст1 текст 1'+ 
' текст 1 текст1 текст 1',
  'Умножение вектора на число, конечно, допускает интеграл по поверхности. Аксиома, в первом приближении, стремительно оправдывает детерминант. Лемма отрицательна. Собственное подмножество ускоряет абсолютно сходящийся ряд, таким образом сбылась мечта идиота - утверждение полностью доказано.',

  'Матожидание последовательно. Нормальное распределение, конечно, поразительно. Согласно последним исследованиям, огибающая семейства прямых уравновешивает абстрактный сходящийся ряд, дальнейшие выкладки оставим студентам в качестве несложной домашней работы.',

  'Интеграл по бесконечной области продуцирует постулат, что неудивительно. Непрерывная функция, общеизвестно, искажает интеграл Гамильтона. Относительная погрешность ускоряет абстрактный интеграл Гамильтона, как и предполагалось. Достаточное условие сходимости небезынтересно изменяет комплексный интеграл от функции комплексной переменной.'
];
var i = 0;
var target = 0;
var timer;

function type( text ){
  clearTimeout( timer );
  i++;
  if( i <= text.length )
  if(text.substr(i-1,1)=='<'){ 
     document.getElementById("type_text").innerHTML +='<br>' 
    }
  else
  { 
    document.getElementById("type_text").innerHTML = text.substr(0, i);
  }
  timer = setTimeout( function(){ type(text) }, 20 );
};
type( text[ target ] );

function changeBg( direction ){
  i = 0;
  target = Math.min(
    text.length-1,
    Math.max(
      0,
      target + direction
    )
  );
  type( text[ target ] );
};

</script>
</div>
</div>
<div id="dalee">
<form>
<table style="height: 70%; width: 60%; margin-left: auto; margin-right: auto;">
<tbody>
<tr>
<td style="text-align: left;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<input onclick="changeBg(-1);return false;" type="button" value="Назад" />&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;</td>
<td style="text-align: right;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;<input onclick="changeBg(1);return false;" type="button" value="Читать далее" /></td>
</tr>
</tbody>
</table>
</form>
</div>
как-то так
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 25.09.2014, 19:26   #3
Anorions
 
Регистрация: 24.09.2014
Сообщений: 5
По умолчанию

Спасибо большое! А не могли бы, пожалуйста, немного объяснить то, что сделали? function changeBg( direction ) особенно эту функцию, пожалуйста
Anorions вне форума Ответить с цитированием
Старый 25.09.2014, 21:05   #4
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Код:
function changeBg( direction ){// принимаем внутрь смещение от текущего куска текста
  i = 0;// обнуляем глобальный счетчик символов для ф-ии type()
  target = Math.min( // ищем айди нового куска текста
    text.length-1, // отсекаем полученные значения, которые превышают массив
    Math.max(
      0, // отсекаем отрицательные значения
      target + direction // получаем значение для сравнения с минимальным и максимальным
    )
  );
  type( text[ target ] ); // перезапускаем функцию
};
п.с. глобальные переменные -- сущее зло
Alar, верни репу!
Naive вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
смена картинок при нажатии [Grizzly] HTML и CSS 2 07.12.2013 00:19
Анимация при нажатии на кнопку Kapitan4ik Общие вопросы Delphi 7 26.10.2011 12:25
выборка из БД при нажатии на кнопку Dmitry1983 PHP 28 03.09.2011 14:28
при нажатии на кнопку Delete vik85 Помощь студентам 0 20.12.2009 20:34
прокрутка при нажатии на кнопку neformat JavaScript, Ajax 0 20.06.2008 20:40