Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.01.2012, 13:07
Интересующийся
Отправить личное сообщение для art13 Посмотреть профиль Найти все сообщения от art13
 
Регистрация: 05.12.2011
Сообщений: 17

Перебежка по буквам.
Задача: есть слово, нужно что бы оно при клике, начиная с последней буквы переместилось вправо. По одной букве.
Все слово я заставил это сделать. И понимаю, что бы выдернуть букву нужен доступ к символам charAt(0);.
<html>
<head>
</head>
<body>
<div id="t" style="position: absolute">слово</div>
<script>
var obj=document.getElementById("t");
var x=0;
function move()
{
	if(x<100)
        {
            x=x+1;
            s=x+"px";
            obj.style.left=s;
        }
}
	
    setInterval("move()",7);
</script>
</body>
</html>

Здесь пока работает при загрузке документа)))
Читал про строки, но как использовать один символ из строки, обработать его и с новыми значениями позиции вернуть, так и не допер.
Ответить с цитированием
  #2 (permalink)  
Старый 04.01.2012, 13:45
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

setInterval("move()",7) e dас будет выполнятся бесконечно, хотя надобности в нём уже никакой не будет.

А по проблеме: обернуть каждую букву в span.

или так
<span onclick="setInterval(function(){innerHTML=innerHTML.slice(1)+innerHTML.charAt(0)},100)"> слово </span>
__________________
29375, 35

Последний раз редактировалось Aetae, 04.01.2012 в 14:05.
Ответить с цитированием
  #3 (permalink)  
Старый 11.01.2012, 10:07
Интересующийся
Отправить личное сообщение для art13 Посмотреть профиль Найти все сообщения от art13
 
Регистрация: 05.12.2011
Сообщений: 17

Вот что получилось.
<html>
<head>
</head>
<body>
<span id="a" style="position: relative">с</span><span id="b" style="position: relative">с</span><span id="c" style="position: relative">ы</span><span id="d" style="position: relative">л</span><span id="e" style="position: relative">к</span><span id="f" style="position: relative" onClick="move()">а</span>
<script>
var obj = document.getElementById("f");
    var x = 10;
    function move()
    {
		if(x < 100)
        {
            x = x + 1;
            s = x + "px";
            obj.style.left = s;
			setInterval("move()", 300);
        }        
    }
</script>
</body>
</html>

Теперь ломаю голову как передвигаться по ID элементов. Допустим можно загнать ABCDEF в массив и присваивать эти значения переменной, которая в свою очередь будет подставляться в строку создания obj. Но! Символы ведь не цифры. Как их присвоить переменной? И Будет ли
Код:
var obj = document.getElementById("f");
это выражение работать с переменной? Или...?
Ответить с цитированием
  #4 (permalink)  
Старый 11.01.2012, 12:51
Интересующийся
Отправить личное сообщение для art13 Посмотреть профиль Найти все сообщения от art13
 
Регистрация: 05.12.2011
Сообщений: 17

Дошел я до такого нагромождения. С моими представлениями о JS должно работать. Но! Вообще не работает. Либо синтаксическая ошибка либо я просто чего не знаю. Все операции вроде простые. Дорогие гуру, подскажите.
<html>
<head>
</head>
<body>
<span id="a" style="position: relative">с</span><span id="b" style="position: relative">с</span><span id="c" style="position: relative">ы</span><span id="d" style="position: relative">л</span><span id="e" style="position: relative">к</span><span id="f" style="position: relative" onClick="move()">а</span>
<script>
var obj;
var i;
function move()
{
for (i = 0; i < 7; i++)
{
	switch(i)
	{
		case 0: obj = document.getElementById("a");
		break;
		case 1: obj = document.getElementById("b");
		break;
		case 2: obj = document.getElementById("c");
		break;
		case 3: obj = document.getElementById("d");
		break;
		case 4: obj = document.getElementById("e");
		break;
		case 5: obj = document.getElementById("f");
		break;
	}
	var x;
    function mov()
    {
		if(x < 100)
        {
            x = x + 2;
            s = x + "px";
            obj.style.left = s;
			setInterval("mov()", 100);
        }       
    }
}
}
</script>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 11.01.2012, 14:33
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Перепишите, это неправильно)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #6 (permalink)  
Старый 11.01.2012, 19:57
Интересующийся
Отправить личное сообщение для art13 Посмотреть профиль Найти все сообщения от art13
 
Регистрация: 05.12.2011
Сообщений: 17

Сообщение от trikadin Посмотреть сообщение
Перепишите, это неправильно)
Большое, блин спасибо!
Может кто то другой окажется компетентнее предыдущего оратора?
Я не прошу за меня писать код. Укажите ошибки, где несостыковки в коде?
Нельзя switch заталкивать в функцию? Я неправильно вызываю функцию? Или с переменными накосячил?
Ответить с цитированием
  #7 (permalink)  
Старый 11.01.2012, 20:07
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,589

http://javascript.ru/blog/Andrej-Par...cii-JavaScript
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 11.01.2012, 20:21
Интересующийся
Отправить личное сообщение для art13 Посмотреть профиль Найти все сообщения от art13
 
Регистрация: 05.12.2011
Сообщений: 17

Сообщение от Aetae Посмотреть сообщение
http://javascript.ru/blog/Andrej-Par...cii-JavaScript
Рёхнуться можно. Это типа я лох. Ладно, почитаю.
Ответить с цитированием
  #9 (permalink)  
Старый 11.01.2012, 20:22
Профессор
Посмотреть профиль Найти все сообщения от Livaanderiamarum
 
Регистрация: 25.12.2011
Сообщений: 786

Сообщение от art13 Посмотреть сообщение
Рёхнуться можно. Это типа я лох. Ладно, почитаю.
Доставил
Ответить с цитированием
  #10 (permalink)  
Старый 12.01.2012, 00:22
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

art13, не поймите меня неправильно, но ваш код не очень)

Вы правильно использовали switch, но в том месте, где его использование абсолютно неоправданно. Более того - использование здесь идентификаторов абсолютно неоправданно. Просто получайте внутри тега-родителя все спаны через parent.getElementsByTagName.

Дальше массивом перебирайте их и ставьте нужные св-ва. Много ответов на свои вопросы вы так же найдёте в этой статье.

Кстати - ставьте один интервал для всех элементов, а не для каждого отдельного.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вставка текста по буквам alerzo Events/DOM/Window 3 08.07.2011 09:55