Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Перемещение дочернего окна
 
 автор: funtik   (12.06.2008 в 23:00)   письмо автору
 
 

Помогите, плиз, очень нужен скрипт. Задача: Написать страничку с кнопкой. По нажатию на кнопку должно программно открываться окно браузера со всеми выключенными панелями. Открывшееся окошко должно двигаться по некоторой траектории. Например, по квадрату, ромбу, кругу..Хэлп...
Есть такой скрипт, но работает не правильно, окошко бегает слишком быстро, не могу разобраться с задержкой...

   
 
 автор: PAT   (13.06.2008 в 17:37)   письмо автору
 
   для: funtik   (12.06.2008 в 23:00)
 

Если "есть такой скрипт, но работает неправильно" - так и давайте его сюда со своими вопросами - чего именно там работает "неправильно".
Или вам обязательно нужно, чтобы здесь заново "изобретали велосипед"?

   
 
 автор: funtik   (13.06.2008 в 19:32)   письмо автору
 
   для: PAT   (13.06.2008 в 17:37)
 

вот..
<html>
<head>
<script language="JavaScript">

var popwindow

var popwindowwidth=200
var popwindowheight=150

var popwindowleft=200
var popwindowtop=100


var popwindowURL="temp.htm"


function showWindow() {
popwindow = window.open(popwindowURL, "popwindow", "width="+popwindowwidth+",height="+popwindowheight+",top="+popwindowtop+",left="+popwindowleft+"")

}

function movewindow() {
do{
movewindow1(800,100,10)
movewindow1(800,500,10)
movewindow1(200,500,10)
movewindow1(200,100,10)

}
while (true)

}


function movewindow1(x, y, numstep) {
var stepx=0
var stepy=0
var i=0

window.setTimeout("movewindow1();",100)
stepx=Math.round((x-popwindowleft)/numstep)
stepy=Math.round((y-popwindowtop)/numstep)

for(i=1;i<numstep-1;i++){

popwindowleft+=stepx
popwindowtop+=stepy
popwindow.moveTo(popwindowleft,popwindowtop)


//setTimeout("movewindow();",100)
//setTimeout("movewindow1();", 1000)
}
popwindowleft=x
popwindowtop=y
popwindow.moveTo(popwindowleft,popwindowtop)
//window.setTimeout("movewindow1();",100)

}

</script>
</head>
<body>
<input type="button" value="Окно" onClick="showWindow()">
<input type="button" value="Бегать" onClick="movewindow()">
</body>
</html>

   
 
 автор: PAT   (13.06.2008 в 21:17)   письмо автору
 
   для: funtik   (13.06.2008 в 19:32)
 

<html><head>
<script>
//***********назначаемые параметры
var PW_w  = 200;    //ширина окна
var PW_h = 150;     //высота окна

var X0 = X_c = 200; //начальное ПЛВУО (положение левого верхнего угла окна) по ширине
var Y0 = Y_c = 100; //начальное ПЛВУО по высоте

var X1 = 800;       //конечное ПЛВУО по ширине
var Y1 = 500;       //конечное ПЛВУО по высоте

var TIMEOUT = 10;   //таймаут (в миллисекундах, >= 0, больше -> медленнее)
var STEP = 5;       //шаг перемещения окна за таймаут (в пикселах, больше -> быстрее)

var PW_u = '';      //URL файла, загружаемого в окно
//***********

var PW;

function showWindow (x)
{
if ((X1 - X0) % STEP || (Y1 - Y0) % STEP) {alert ('Шаг перемещения не кратен сторонам'); return}
PW = window.open (PW_u, 'pw', 'width=' + PW_w + ',height=' + PW_h + ',top=' + Y0 + ',left=' + X0);
x.disabled = true; document.getElementById ('mo').disabled = false;
}

function moveWindow ()
{
if (Y_c == Y0) if (X_c < X1) X_c += STEP; else Y_c += STEP; else
if (Y_c == Y1) if (X_c > X0) X_c -= STEP; else Y_c -= STEP; else
if (X_c == X1) Y_c += STEP; else Y_c -= STEP;
if (PW.closed) {document.getElementById ('op').disabled = false; X_c = X0; Y_c = Y0; return}
PW.moveTo (X_c, Y_c); PW.focus (); setTimeout (moveWindow, TIMEOUT);
}
</script>
</head>
<body>
<input type="button" value="Открыть" id="op"
       onclick="showWindow (this)">
<input type="button" value="Бегать" id="mo" disabled
       onclick="moveWindow (); this.disabled = true">
</body>
</html>

   
 
 автор: funtik   (14.06.2008 в 10:51)   письмо автору
 
   для: PAT   (13.06.2008 в 21:17)
 

Большое спасибо за помощь!!!!!

   
 
 автор: funtik   (20.06.2008 в 21:41)   письмо автору
 
   для: funtik   (14.06.2008 в 10:51)
 

Товарищи, помогите, пожалуйста, еще разок...
Задача такая:
В окне браузера изобразить три квадрата вложенных в друг друга. (
...
). Написать процедуру для перемещения одного квадрата внутри другого по некоторой траектории (ромб, квадрат). Внутренний квадрат должен отражаться от рёбер внешнего. Путём последовательного вызова этой процедуры для каждого квадрата показать их относительное движение.

   
 
 автор: PAT   (21.06.2008 в 06:33)   письмо автору
 
   для: funtik   (20.06.2008 в 21:41)
 

<html>
<head>
<style>
html, body {margin: 0; padding: 0; width: 100%; height: 100%; overflow: hidden}
div {position: absolute}
</style>
<script>
var A = new Array (), L = new Array (), T = new Array ();
function moveSQ (X, Y, A)
{
if (Y == 0) if (X < A) X++; else Y++; else
if (Y == A) if (X > 0) X--; else Y--; else
if (X == A) Y++; else Y--; 
return (X + '=' + Y);
}
function funcMove ()
{
var z = moveSQ (L [1], T [1], A [0] - A [1], A [0] - A [1]).split ('=');
L [1] = z [0] * 1; T [1] = z [1] * 1;
with (document.getElementById ('DV1').style)
   {left = L [0] + L [1] + 'px'; top = T [0] + T [1] + 'px'}
var z = moveSQ (L [2], T [2], A [1] - A [2], A [1] - A [2]).split ('=');
L [2] = z [0] * 1; T [2] = z [1] * 1;
with (document.getElementById ('DV2').style)
   {left = L [0] + L [1] + L [2] + 'px'; top = T [0] + T [1] + T [2] + 'px'}
setTimeout (funcMove, 10);
}
onresize = function () {with (document.location) href = href}
onload = function ()
{
with (document.body) var w = offsetWidth, h = offsetHeight;
A [0] = parseInt ((w > h) ? (w / 2) : (h / 2));
A [1] = parseInt (A [0] / 2); A [2] = parseInt (A [1] / 2);
L [0] = parseInt ((w - A [0]) / 2);
T [0] = parseInt ((h - A [0]) / 2);
for (var j = 0; j < 3; j++)
with (document.getElementById ('DV' + j).style)
   {
   zIndex = j + 1; width = height = A [j] + 'px'; 
   left = L [0] + 'px'; top = T [0] + 'px';
   if (j) L [j] = T [j] = 0;
   }
funcMove ();
}
</script>
</head>
<body>
<div id="DV0" style="background-color: yellow"></div>
<div id="DV1" style="background-color:    red"></div>
<div id="DV2" style="background-color:  green"></div>
</body>
</html>

   
 
 автор: funtik   (21.06.2008 в 16:47)   письмо автору
 
   для: PAT   (21.06.2008 в 06:33)
 

РАТ!!!Огромное спасибо!!!!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования