Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.09.2013, 21:35
Кандидат Javascript-наук
Отправить личное сообщение для koeshiro Посмотреть профиль Найти все сообщения от koeshiro
 
Регистрация: 05.12.2012
Сообщений: 125

Передать массив в JS-функцию
Есть функция js из которой нужно как-то передать в другую массив данных. Преобразование в строку и обратно не прошло. Просто скинуть массив тоже. . . А Глобальный не лучший выход. . . Она ещё после будет применяться эта переменная . . . Функция в общем выглядит так.
<script>
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(e,l,num,positionarry);},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++;
}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++;
}
animate(e,l,num,positionarry);
	}
else{if(screen.height<720){NewsForMobail(e,num,s)}else{fly(e,num,s,scwidth)}}
}
function animate(e,l,num,positionarry){
	var scwidth=(screen.width/100)*18;
    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;
	}
function sa(s){clearInterval(s);}
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(s);
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(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>
И сама страница
<!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){
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(e,l,num,positionarry);},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++;
}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++;
}
animate(e,l,num,positionarry);
	}
else{if(screen.height<720){NewsForMobail(e,num,s)}else{fly(e,num,s,scwidth)}}
}
function animate(e,l,num,positionarry){
	var scwidth=(screen.width/100)*18;
    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;
	}
function sa(s){clearInterval(s);}
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(s);
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(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>
Ответить с цитированием
  #2 (permalink)  
Старый 12.09.2013, 21:37
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от koeshiro
Функция в общем выглядит так
Здесь нет телепатов, оставьте только две-три проблемные строчки кода
Ответить с цитированием
  #3 (permalink)  
Старый 12.09.2013, 21:39
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от koeshiro
Есть функция js из которой нужно как-то передать в другую массив данных
var from = function() {
   return ['a', 'b', 'c'];
};


var to = function(array) {
   alert(array());
};

to(from);

Последний раз редактировалось monolithed, 12.09.2013 в 21:41.
Ответить с цитированием
  #4 (permalink)  
Старый 13.09.2013, 15:16
Кандидат Javascript-наук
Отправить личное сообщение для koeshiro Посмотреть профиль Найти все сообщения от koeshiro
 
Регистрация: 05.12.2012
Сообщений: 125

monolithed,
Второй способ пробовал. А на повод телепатии. . . Простите. . . как смог так и написал. . .
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
передать анонимную функцию, вызывающую другую функцию с нужными параметрами Ваяс Общие вопросы Javascript 5 21.02.2013 20:12
Как передать переменную в другую функцию adder-vb jQuery 3 31.01.2013 14:29
Передать в функцию данные waw555 Общие вопросы Javascript 2 21.09.2012 19:59
Как перевести json строку в js массив? Tek Общие вопросы Javascript 1 25.03.2012 17:11
преобразовать php массив в массив js zebulun Общие вопросы Javascript 12 02.09.2011 00:49