Модератор форума: Admin, Cибиря4ка, Komoff, Diana  
Вопросы для доброго дяди, от Koeshiro
Дата: Воскресенье, 08.09.2013, 19:37 |
Генерал-майор
Группа: Проверенные
Сообщений: 440
Награды: 0
Репутация: 14
Статус: Offline


Цитата (likbezz, Вс, 08.09.2013, 12:35:35)
document.Id для особо современных браузеров.

Или я вас не понял. Или я плохо ищу.


 
Дата: Воскресенье, 08.09.2013, 19:41 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Koeshiro,
Цитата (Koeshiro, Вс, 08.09.2013, 19:37:33)
Или я вас не понял. Или я плохо ищу.

Ни разу не встречали такое:
Код
document.body

Код
document.forms[0]

Код
document.images[0]

Код
document.links[2]

..?


 
Дата: Среда, 11.09.2013, 17:26 |
Генерал-майор
Группа: Проверенные
Сообщений: 440
Награды: 0
Репутация: 14
Статус: Offline


likbezz, .forms и links нет.

Добавлено (11.09.2013, 11:52)
---------------------------------------------
Вроде всё нормально. Но один из последних штрихов страницы не работает. . . . .
Код
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta content="text/html">
<title>Я Мерепещающаяся картинка!</title>
<style>
body{padding:0;margin:0;}
#slidediv1{width:100%;height:100%;position: fixed; padding:0; margin:0;}
.tdiv{position: fixed; width:300px; height:30px; background: rgba(0, 0, 0, 0.8); top:0; left:20px; color:#f99206;padding:5px;}
.bdiv{position: fixed; width:300px; height:30px; background: rgba(0, 0, 0, 0.8); bottom:0; right:20px; color:#f1f1f1;padding:5px;z-index:9999;}
.newsdiv{position:  absolute; width:300px; height:300px; background: rgba(0, 0, 0, 0.8);; color:#f1f1f1;padding:5px; border-radius:10px 10px 10px 10px; border: 2px dashed #fff;margin:50px !important; padding: 5px;z-index:1;}
.bdiv,div{padding:5px;}
#firstdiv{position: relative;}
</style>
</head>
<body >
<div id="slidediv1"><img src="https://pp.vk.me/c307514/v307514138/a569/7mb8m9F-JFQ.jpg" height="100%" width="100%"/></div>
<div id="firstdiv">
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div></div>
<div class="tdiv"><div align="center"><b>Картинка:</b> Небеса</div></div>
<div class="bdiv"><div id="stop" style="float:left" onclick="sa();">Стоп</div><div id="down" onclick="fly();" style="float:left">Вниз</div></div>
<script>
function afun(divname){
position='';
z=0;
l=0;
i=1;
scwidth=(screen.width/100)*18;
e=document.getElementById(divname);
num=e.children.length;
s=setInterval(function(){animate();},50);
document.getElementById('down').onclick=function(){fly(e,num,s,scwidth);}
document.getElementById('stop').onclick=function(){sa(s);}
if(screen.height>=720){
topposition=[Math.floor(Math.random()*screen.height/6-100) , screen.height/2-100+Math.floor(Math.random()*80)];
while(i<num){
   position+=(i*300+Math.floor(Math.random()*50))+Math.floor(Math.random()*screen.width/10);
   position+='^';
   i++;
}i=0;
positionarry=position.split('^');
while(i<num){
   if(z==0){z=1;}else{z=0;}
   e.children[i].style.top=topposition[z]+50+'px';
   e.children[i].style.left=positionarry[i]+'px';i++;
}
   function animate(){
   l++;
   while(i<num){
    e.children[i].style.left=positionarry[i]-l+'px';
    e.children[i].style.width=scwidth+'px';
    i++;
   }
   i=0;
   }}
else{if(screen.height<720){NewsForMobail(e,num,s)}else{fly(e,num,s,scwidth)}}
}
function sa(s){clearInterval(s);}
function fly(e,num,s,divarwidth){
i=0;
z=0;
w=0;
while(i<num){
   e.children[i].style.top=i*divarwidth+(20*i)+'px';
   e.children[i].style.left=screen.height/2+'px';i++;}
   clearInterval(s);
function aniwidth(){
   i=0;
   w++;
   while(i<num){z++;
   e.children[i].style.width=300+w+'px';
   i++;}
   if(z<num*screen.width/4){setTimeout(function(){aniwidth()},2);}
   }
   aniwidth();
}
function NewsForMobail(e,num,s){
i=0;
z=0;
awidth=[(screen.width/2)+(screen.width/6) , (screen.width/2)-(screen.width/6)];
sa(s);
while(i<num){
if(z=0){z=1}else{z=0}

   if(z=0){
    e.position=awidth[1]+'px';
    i++;
    e.position=awidth[0]+'px';
    i++;
   }
     
   else{
    e.position=awidth[0]+'px';
    i++;
    e.position=awidth[1]+'px';
    i++;
   }
}
}
afun('firstdiv');
</script>
</body>
</html>
Я пытался понять в чём дело. . . . Но особого толку не было от этого. Дебагеры выдают разную "охенею" Одному кодировка не нравиться. Другому кажется что нет ; там где она есть. . . .

function NewsForMobail()
Заранее спасибо за помощь =)


Сообщение отредактировал Koeshiro - Среда, 11.09.2013, 17:42
 
Дата: Среда, 11.09.2013, 18:49 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Koeshiro,
Цитата (Koeshiro, Ср, 11.09.2013, 11:52:35)
Вроде всё нормально. Но один из последних штрихов страницы не работает.

..Функции вложенные, переменные глобальные..
Ты вообще не читаешь что я пишу? или не понимаешь прочитанное?

У тебя функция animate() - опять вложена в функцию afun().
Ни к одной переменной не прописан var - глобальные.

Код
function aniwidth(){   
    i=0;   
    w++;

- чему тут равно w ?
..

Цитата (Koeshiro, Ср, 11.09.2013, 17:26:00)
Заранее спасибо за помощь

- бесполезная она какая-то получается..


 
Дата: Суббота, 14.09.2013, 17:07 |
Генерал-майор
Группа: Проверенные
Сообщений: 440
Награды: 0
Репутация: 14
Статус: Offline


Цитата (likbezz, Ср, 11.09.2013, 18:49:55)
- бесполезная она какая-то получается..

Шутите? Это вы ведь всему меня научили.

Добавлено (12.09.2013, 14:37)
---------------------------------------------
animate функцию вытащить не получается. Не знаю как передать массив. . . .
Бред налепил. Прорвёмся!

Добавлено (14.09.2013, 17:07)
---------------------------------------------
Т.к. Не понял как выводить массив\объект В другие функции не делая его глобальным сделал объект с "намудреным" названием. . . . Удобно! Сделал функцию которая вызывает все нужные функции. Или вообще все. biggrin А если нужной нет то выводит в консоль сообщение с ошибкой =)
Короче говоря страница выглядит теперь так.
Код
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta content="text/html">
<title>Я Перепещающаяся картинка!</title>
<script>
//Основная функция для работы всей страницы1
function afun(divname){
var position='';
var z=0;
var l=0;
var i=1;
var scwidth=(screen.width/100)*18;
var e=document.getElementById(divname);
var num=e.children.length;
var s=setInterval(function(){animate();},50);
if(screen.height>=720){
topposition=[Math.floor(Math.random()*screen.height/6-100) , screen.height/2-100+Math.floor(Math.random()*80)];
while(i<num){
  position+=(i*300+Math.floor(Math.random()*50))+Math.floor(Math.random()*screen.width/10);
  position+='^';
  i++;
}var i=0;
var positionarry=position.split('^');
while(i<num){
  if(z==0){z=1;}else{z=0;}
  e.children[i].style.top=topposition[z]+50+'px';
  e.children[i].style.left=positionarry[i]+'px';i++;
}
function animate(){
     var i=0;
  l++;
  while(i<num){
   e.children[i].style.left=positionarry[i]-l+'px';
   e.children[i].style.width=scwidth+'px';
   i++;
   }
  var i=0;}}
else{if(screen.height<720){NewsForMobail(e,num,s);}else{fly(e,num,s,scwidth)}}
/*Objects*/
ObjectforDocement=new Object;
ObjectforDocement.element=e;
ObjectforDocement.stime=s;
ObjectforDocement.num=num;
ObjectforDocement.position=position;
ObjectforDocement.elementWidth=scwidth;
/*--------*/
}
//Функция для удобного вызова любых функций.
function callallfunction(functionname){
switch(functionname){
  case 'fly':fly(ObjectforDocement.element,ObjectforDocement.num,ObjectforDocement.stime,ObjectforDocement.elementWidth);
  break;
  case 'sa':sa(ObjectforDocement.stime);
  break;
  case 'NewsForMobail':NewsForMobail(ObjectforDocement.element,ObjectforDocement.num,ObjectforDocement.stime);break;
  case 'all':sa(ObjectforDocement.stime);
  NewsForMobail(ObjectforDocement.element,ObjectforDocement.num,ObjectforDocement.stime);
  fly(ObjectforDocement.element,ObjectforDocement.num,ObjectforDocement.stime,ObjectforDocement.elementWidth);  
  break;
  default:console.log('Error. Function '+functionname+' undefined');
   break;}}

function sa(){clearInterval(ObjectforDocement.stime);}
//Преобразование в колонку.
function fly(e,num,s,divarwidth){
var i=0;
var z=0;
var w=0;
while(i<num){
  e.children[i].style.top=i*divarwidth+(20*i)+'px';
  e.children[i].style.left=screen.height/2+'px';i++;}
  clearInterval(ObjectforDocement.stime);
  function aniwidth(){
   var i=0;
   w++;
   while(i<num){z++;
   e.children[i].style.width=300+w+'px';
   i++;}
   if(z<num*screen.width/4){setTimeout(function(){aniwidth()},2);}
   }
   aniwidth();
}
// Преобразование под телефон.
function NewsForMobail(e,num,s){
var i=0;
var z=0;
var awidth=[screen.width/2+screen.width/6 , screen.width/2-screen.width/6];
sa();
while(i<num){
  if(z=0){z=1}else{z=0}

  if(z=0){
   e.left=awidth[1]+'px';
   i++;
   e.left=awidth[0]+'px';
   i++;
  }
   
  else{
   e.left=awidth[0]+'px';
   i++;
   e.left=awidth[1]+'px';
   i++;
  }
}
}
</script>
<style>
body{padding:0;margin:0;}
#slidediv1{width:100%;height:100%;position: fixed; padding:0; margin:0;}
.tdiv{position: fixed; width:300px; height:30px; background: rgba(0, 0, 0, 0.8); top:0; left:20px; color:#f99206;padding:5px;}
.bdiv{position: fixed; width:300px; height:30px; background: rgba(0, 0, 0, 0.8); bottom:0; right:20px; color:#f1f1f1;padding:5px;z-index:9999;}
.newsdiv{position:  absolute; width:300px; height:300px; background: rgba(0, 0, 0, 0.8);; color:#f1f1f1;padding:5px; border: 2px dashed #fff;margin:50px !important; padding: 5px;z-index:1;}
.bdiv,div{padding:5px;}
#firstdiv{position: relative;}
</style>
</head>
<body >
<div id="slidediv1"><img src="https://pp.vk.me/c307514/v307514138/a569/7mb8m9F-JFQ.jpg" height="100%" width="100%"/></div>
<div id="firstdiv">
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div>
<div class="newsdiv">Текст</div></div>
<div class="tdiv"><div align="center"><b>Картинка:</b> Небеса</div></div>
<div class="bdiv"><div id="stop" style="float:left" onclick="callallfunction('sa');">Стоп</div><div id="down" onclick="callallfunction('fly');" style="float:left">Вниз</div><div id="down" onclick="callallfunction('NewsForMobail');" style="float:left">Телефон</div></div>
<script>afun('firstdiv');</script>
</body>
</html>
Ну и для скачки. Ещё пара шагов. И страница будет полностью готова.


Сообщение отредактировал Koeshiro - Суббота, 14.09.2013, 17:10
 
Дата: Суббота, 14.09.2013, 17:11 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Koeshiro,
Цитата (Koeshiro, Сб, 14.09.2013, 17:07:19)
Ещё пара шагов. И страница будет полностью готова.

Оптимист, блин ))
Посмотрю позже


 
Дата: Вторник, 17.09.2013, 15:37 |
Генерал-майор
Группа: Проверенные
Сообщений: 440
Награды: 0
Репутация: 14
Статус: Offline


likbezz, Не нашлось ещё время?)

 
Дата: Вторник, 17.09.2013, 21:33 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Koeshiro,
Цитата (Koeshiro, Вт, 17.09.2013, 15:37:56)
Не нашлось ещё время?)

Снова куча бесполезных переменных, снова все вложено ..
Вот что я имею в виду под: несколько простых функций:

http://likbezz.ru/_example/_rest/_2013/p1/Untitled-55.html


 
Дата: Вторник, 24.09.2013, 10:52 |
Генерал-майор
Группа: Проверенные
Сообщений: 440
Награды: 0
Репутация: 14
Статус: Offline


Цитата (likbezz, Вт, 17.09.2013, 21:33:25)

Снова куча бесполезных переменных, снова все вложено ..

Да? Ну блин. Пока что не знаю как без них. Но если можно обойтись и без них попробую. . .

Добавлено (24.09.2013, 10:52)
---------------------------------------------
И снова привет. Учитель. У меня снова проблема. Однажды вы мне показали как можно определить местоположение курсора на экране. Сейчас я уже более или менее понимаю что содержится в этом скрипте. Но всё же не пойму один единственный элемент.
Цитата
function getPosition(e){
e=e||window.event;
var cursor={x:0,y:0};
if(e.pageX||e.pageY){
cursor.x=e.pageX;
cursor.y=e.pageY;
}else{
cursor.x=e.clientX+
(document.documentElement.scrollLeft||
document.body.scrollLeft) -
document.documentElement.clientLeft;
cursor.y=e.clientY+
(document.documentElement.scrollTop ||
document.body.scrollTop) -
document.documentElement.clientTop;
}
return cursor;
}
function skyanimate(event){
var mous=getPosition(event);
var skyid=document.getElementById('sky');
var num=skyid.children.length;
var i=0;
var i=0;
while(i<num){skyid.children[i].style.top=screen.height/2-mous.y+'px';skyid.children[i].style.left=screen.width/2-mous.x+'px';i++;}
}
Чему равен event Ведь когда я писал скрипт мне выдало единственную ошибку event не определён. И тут я и заметил то чего не понимал.
В версии которую вы мне показали всё выглядело так.
Код
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://my-soul.tk/jq/jquery-1.8.3.min.js"></script>
<style>
      body{position: absolute; width: 1000px; height: 1000px;}
      img{position: absolute;}
</style>
<script type="text/javascript">      
function getPosition(e){       
e=e||window.event;       
var cursor={x:0,y:0};       
if(e.pageX||e.pageY){      
       cursor.x=e.pageX;      
       cursor.y=e.pageY;      
}else{      
       cursor.x=e.clientX+      
       (document.documentElement.scrollLeft||       
       document.body.scrollLeft) -       
       document.documentElement.clientLeft;      
       cursor.y=e.clientY+       
       (document.documentElement.scrollTop ||       
       document.body.scrollTop) -       
       document.documentElement.clientTop;      
       }      
return cursor;      
}
myimgwidth=screen.width;
</script>
</head>
<body onmousemove="var p=getPosition(event);var f=p.y-50;document.getElementById('myimg').style.top=f+'px';">
<h1>Нажми на картинки, они улетят!</h1>
<div id="diva" >
<img src="http://680482125.uid.me/avatar.jpg" border="1" width="110" id="myimg" onclick="$('#myimg').animate({left:myimgwidth},900);"/><br>
<img src="http://680482125.uid.me/avatar.jpg" border="2" width="110" id="myimg2" onclick="$('#myimg2').animate({left:1500},1500);"/><br>
<img src="http://680482125.uid.me/avatar.jpg" border="3" width="110" id="myimg3" onclick="$('#myimg3').animate({left:2000},1000);"/><br>
</div>
<h2>На все =)</h2>
</body>
</html>
У меня конечно всё работает по средствам <body onmousemove="skyanimate(event)"> Но всё же что это за переменная?
P.S. Стиль оформления скриптов вроде подобрал =)


Сообщение отредактировал Koeshiro - Вторник, 24.09.2013, 11:27
 
Дата: Среда, 25.09.2013, 00:52 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Koeshiro,
Цитата (Koeshiro, Вт, 24.09.2013, 10:52:21)
Чему равен event

Объекту откуда вызвано событие.
Цитата (Koeshiro, Вт, 24.09.2013, 10:52:21)
<body onmousemove="var p=getPosition(event);var f=p.y-50;document.getElementById('myimg').style.top=f+'px';">

В данном случае body
..

Цитата (Koeshiro, Вт, 24.09.2013, 10:52:21)
В версии которую вы мне показали всё выглядело так.

- это не мой код)


 
Дата: Среда, 25.09.2013, 12:58 |
Генерал-майор
Группа: Проверенные
Сообщений: 440
Награды: 0
Репутация: 14
Статус: Offline


Цитата (likbezz, Ср, 25.09.2013, 00:52:55)
- это не мой код)

Разве? Я получаться что-то менял там. . .

Добавлено (25.09.2013, 10:59)
---------------------------------------------
Понял как это работает!)

Добавлено (25.09.2013, 12:58)
---------------------------------------------
Можно один наверное глупый вопрос. . . Почему вот это

Код
//Определение позиционирования Курсора.
function getPosition(e){   
e=e||window.event;   
var cursor={x:0,y:0};   
if(e.pageX||e.pageY){cursor.x=e.pageX; cursor.y=e.pageY;}
else{cursor.x=e.clientX+(document.documentElement.scrollLeft||document.body.scrollLeft)-document.documentElement.clientLeft; cursor.y=e.clientY+(document.documentElement.scrollTop||document.body.scrollTop)-document.documentElement.clientTop;}  
return cursor;  
}

//Определение Позиции Для Анимации Sky.
function sky(event){
if(!skyposition){
var skyid=document.getElementById('sky');
var num=skyid.children.length;
var i=0;
var positionarry=[];
while(i<num){skyid.children[i].style.top=screen.height-(i+1)*200+'px'; positionarry.push(screen.height-(i+1)*200);i++;}
skyposition=posirionarry.join('^');
skyanimate(event);
}
else{skyanimate(event);}
}

//Анимация sky.
function skyanimate(event){
var positionarry=skyposition.split('^');
var mous=getPosition(event);
var skyid=document.getElementById('sky');
var num=skyid.children.length;
var i=0;
while(i<num){skyid.children[i].style.top=positionarry[i]-mous.y+i*200+'px'; skyid.children[i].style.left=positionarry[i]+mous.x-i*140+'px';i++;}
}
Не в какую не хочет работать? Выдаёт что нет skyposition хотя я проверяю его наличие и в случае отсутствия создаю.


 
Дата: Среда, 25.09.2013, 21:36 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Koeshiro,
Цитата (Koeshiro, Ср, 25.09.2013, 12:58:13)
function sky(event){
if(!skyposition){ {

Интересно, что это ты проверяешь ? - его никогда не будет - skyposition просто не определен в данной функции.

event - это не объект, это событие объекта.
Скорее всего у тебя его нет - в данном фрагменте не видно откуда приходит event


 
Дата: Четверг, 26.09.2013, 17:02 |
Генерал-майор
Группа: Проверенные
Сообщений: 440
Награды: 0
Репутация: 14
Статус: Offline


Цитата (likbezz, Ср, 25.09.2013, 21:36:54)
Интересно, что это ты проверяешь ? - его никогда не будет - skyposition просто не определен в данной функции.

У меня просто закончились идеи как можно выполнить часть кода (ту что в if) один раз?
Цитата (likbezz, Ср, 25.09.2013, 21:36:54)
его никогда не будет

Как я понял его не будет потому что в любом случает if(!skyposition){ ... Выдаст ошибку? Тогда как поступить? Пот этого просто не знаю. . .Проверять позиционирование элемента глупо на всех экранах оно разное. z=0 И после выполнения нужного кода z=1 тоже глупо. После запуска функции во второй раз z=0 снова . . . do while тоже не выходит. . .


Сообщение отредактировал Koeshiro - Четверг, 26.09.2013, 17:34
 
Дата: Четверг, 26.09.2013, 23:40 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Koeshiro,
Цитата (Koeshiro)
Как я понял его не будет потому что в любом случает if(!skyposition){ ... Выдаст ошибку?

Её - переменной skyposition - не будет, потому что она не определена в данной функции.
Это то же самое что купить пустой пластиковый стаканчик за три рубля и проверять нет ли там кофе.. его еще не налили туда .. и не было изначально..

Цитата (Koeshiro)
Выдаёт что нет skyposition хотя я проверяю его наличие и в случае отсутствия создаю.

Глобальные переменные определяются либо через typeof, либо через объект window.
Простой if - вызовет ошибку, тк переменная НЕ определена.
Сколько можно повторять одно и тоже ..

Цитата (Koeshiro)
Может do while с ошибкой?

- сильно подозреваю, что до цикла не дойдет .. функция запорится гораздо раньше.
Хотя, точно сказать по данному куску кода, конечно сложно - не видно что откуда вызывается, а прикидывать вероятности не вижу смысла - косяк налицо.


 
Дата: Пятница, 27.09.2013, 12:02 |
Генерал-майор
Группа: Проверенные
Сообщений: 440
Награды: 0
Репутация: 14
Статус: Offline


Цитата (likbezz, Чт, 26.09.2013, 23:40:34)
Глобальные переменные определяются либо через typeof, либо через объект window.
Простой if - вызовет ошибку, тк переменная НЕ определена.
Сколько можно повторять одно и тоже ..

Я понял. . . Просто в примере нечего не менял а так пытался сделать глобальный объект через windiw.тра-та-та И строку через return тра-та-та(Не сразу понял что это всё дело нужно к чему-то приравнять) Не помогло. . .
Цитата (likbezz, Чт, 26.09.2013, 23:40:34)
- сильно подозреваю, что до цикла не дойдет .. функция запорится гораздо раньше.

Да даже если и дойдёт до него код будет выполняться каждый раз. Не имеет смысла использовать этот код. . .
Цитата (likbezz, Чт, 26.09.2013, 23:40:34)
Хотя, точно сказать по данному куску кода, конечно сложно - не видно что откуда вызывается, а прикидывать вероятности не вижу смысла - косяк налицо.

Я вот пытаюсь прикинуть как можно вообще сделать то что я хочу.(Что бы три элемента немного сдвигались в сторону мышки. И сделать это так чтоб не пришлось писать три отдельный функции. . . . Но идеи исчерпались. Я не имею представления о том как можно это реализовать(Не используя JQ. . . Это просто принципиально))
P.S. А как создавать глобальную переменную через typeof ?


 
Поиск:


Мобильная версия