Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.01.2009, 19:38
777
 
Сообщений: n/a

Передвижение дива
<script language="JavaScript">
function moveTxt() { if (ani1.style.pixelTop < 500) { ani1.style.pixelTop += 2; setTimeout("moveTxt()", 50); } }
</script></head>

<body onLoad="moveTxt()">

<div id="ani1" style="position:absolute;left:10;top:10">Text ... on the go!</div>


Подскажите как добиться кроссбраузерности..
Ответить с цитированием
  #2 (permalink)  
Старый 10.01.2009, 19:52
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

document.getElementById('ani1').style…

И пересчет позиции надо так организовать, чтобы можно было еще единицы измерения приписать
pixelTop += position + 'px'
Ответить с цитированием
  #3 (permalink)  
Старый 10.01.2009, 20:08
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Octane,
// Значение из CSS:
var pixelTop = "20px";

// Описанная тобой операция:
pixelTop += 20 + "px";

// Результат:
alert(pixelTop); // 20px20px
Ответить с цитированием
  #4 (permalink)  
Старый 10.01.2009, 20:27
777
 
Сообщений: n/a

<body onload="move()">

<script language="JavaScript">
var pos = 'px';
function move() { if (document.getElementById('m1').style.left < 500 pos) { document.getElementById('m1').style.left += 2 pos; setTimeout("move()", 50); } }
</script>

<div id="m1" style="position: absolute; left:10; top:10"> !!! </div>



Подскажите правильно мыслю ? С ява к сожалению только начинаю знакомство...
Ответить с цитированием
  #5 (permalink)  
Старый 10.01.2009, 23:40
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Андрей Параничев, да += забыл убрать. Я просто ввел новую переменную, показав, что увеличивать значение мало, нужно еще дописывать единицы измерения.

777:
И кстати, что такое pixelTop? Как-то не обратил сразу на это внимания. У объекта style нет свойства pixelTop.

Сообщение от 777 Посмотреть сообщение
var pos = 'px';
….style.left < 500 pos …
….style.left += 2 pos …
Что это?

Вам свойству left нужно присваивать строку, содержащую число и единицы измерения.

…style.left = число + 'px'
Ответить с цитированием
  #6 (permalink)  
Старый 11.01.2009, 00:44
Интересующийся
Отправить личное сообщение для Ilya Посмотреть профиль Найти все сообщения от Ilya
 
Регистрация: 09.01.2009
Сообщений: 14

Octane,
У объекта style есть свойство pixelTop.

777,
Я поменял задержку на 25 миллисекунд. Для лучшей плавности перехода, поэкспериментируйте с этим показателем.


<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript">
var vr2; // Необходимая глобальная переменная, чтобы вовремя остановить задержку
function moveTxt() { 
	var vr1 = document.getElementById("ani1"); // Ссылка на объект
	var x = parseInt(vr1.style.top); // Переменная, которая будет менять расстояние от  родительского элемента (сверху по оси х)
	x++; // Приращение
 	vr1.style.top = x + "px";  // Новая координата
	if(vr1.style.top == 500 + "px") { //Если расстояние от родительского элемента равно 500 пикселей (сверху по оси х), то задержка останавливается
		clearInterval(vr2);
	}
}
function setI() {
	vr2 = setInterval("moveTxt()", 25); // Задержка
}
</script>
</head>
<body onLoad="setI()">
<div id="ani1" style="position:absolute;left:10px;top:10px">Text ... on the go!</div>
</body>
</html>

Последний раз редактировалось Ilya, 11.01.2009 в 01:10.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Еще один вариант плавно раскрывающегося дива (экспандер, спойлер) Alekson Ваши сайты и скрипты 0 23.12.2008 03:01
как редактировать размер дивА NiceOne Общие вопросы Javascript 8 29.03.2008 05:52
Колесо & передвижение стрелочками Гость Общие вопросы Javascript 0 31.01.2008 16:22