Jump to content
  • 0

Присвоение новых свойств


Victor Ananiev
 Share

Question

Хочу сделать прокрутку фотографий, типу кадров пленки на джс) вот как бы рабочий приммер, но ругается опера, на вот такое:

document.getElementById('fotoimg_'+img_num).arr_num=start_pos;

я так понял нельзя напрямую указывать значения и создавать свойства... но как тогда их обьявлять?

вот скрипт:

  var imgs=new Array();
var i=0;
<?php
$dir=opendir('imgs/');
while($value=readdir($dir))
{
if($value!='.'&&$value!='..'&&eregi('(jpg|gif|bmp|png)$', $value))
{
echo('imgs[i++]="imgs/'.$value.'";'."\n");
}
}
?>
function insert_img(num)
{
if(imgs.length>num)
{
var rand=Math.random()*imgs.length;
rand=Math.floor(rand);
var start_pos;
if(rand-num+1<0)
{
start_pos=0;
}
else
{
start_pos=rand-num+1;
}
var img_num=1;
var last=start_pos+5;
while(start_pos<=last)
{
document.getElementById('fotoimg_'+img_num).arr_num=start_pos;
document.getElementById('fotoimg_'+img_num).src=imgs[start_pos];
document.getElementById('fotoimg_'+img_num).parentNode.href=imgs[start_pos];
start_pos++;
img_num++;
}
}
else if(num>=imgs.length&&imgs.length>0)
{
var i=1;
while(i<imgs.length)
{
document.getElementById('fotoimg_'+i).arr_num=i-1;
document.getElementById('fotoimg_'+i).src=imgs[i-1];
document.getElementById('fotoimg_'+i).parentNode.href=imgs[i-1];
i++;
}
}
else if(imgs.length<=0)
{
alert('ARRAY is null');
}
}
function loader()
{
insert_img(5);
}
function imgs_up(up_num)
{
if(document.getElementById('fotoimg_1').arr_num-up_num>=0)
{
for(var j=1;j<=5;j++)
{
document.getElementById('fotoimg_'+j).arr_num-=up_num;
document.getElementById('fotoimg_'+j).src=imgs[document.getElementById('fotoimg_'+j).arr_num];
document.getElementById('fotoimg_'+j).parentNode.href=imgs[document.getElementById('fotoimg_'+j).arr_num];
}
}
else if(document.getElementById('fotoimg_1').arr_num-up_num<0&&imgs.length>=5)
{
var my_up_num=document.getElementById('fotoimg_1').arr_num;
for(var j=1;j<=5;j++)
{
document.getElementById('fotoimg_'+j).arr_num-=my_up_num;
document.getElementById('fotoimg_'+j).src=imgs[document.getElementById('fotoimg_'+j).arr_num];
document.getElementById('fotoimg_'+j).parentNode.href=imgs[document.getElementById('fotoimg_'+j).arr_num];
}
}
}
function imgs_down(down_num)
{
if(document.getElementById('fotoimg_5').arr_num+down_num<=imgs.length-1)
{
for(var j=1;j<=5;j++)
{
document.getElementById('fotoimg_'+j).arr_num+=down_num;
document.getElementById('fotoimg_'+j).src=imgs[document.getElementById('fotoimg_'+j).arr_num];
document.getElementById('fotoimg_'+j).parentNode.href=imgs[document.getElementById('fotoimg_'+j).arr_num];
}
}
else if(document.getElementById('fotoimg_5').arr_num+down_num>imgs.length-1&&imgs.length-1>=5)
{
var my_down_num=imgs.length-document.getElementById('fotoimg_5').arr_num-1;
for(var j=1;j<=5;j++)
{
document.getElementById('fotoimg_'+j).arr_num+=my_down_num;
document.getElementById('fotoimg_'+j).src=imgs[document.getElementById('fotoimg_'+j).arr_num];
document.getElementById('fotoimg_'+j).parentNode.href=imgs[document.getElementById('fotoimg_'+j).arr_num];
}
}
}
window.onload=loader;

вот html

<div>
<div id="foto_up" onclick="imgs_up(1)">UP</div>
<div id="fotoimg">
<a href=""><img src="imgs/www/lipsum07.gif" id="fotoimg_1" /></a>
<a href=""><img src="imgs/www/lipsum07.gif" id="fotoimg_2" /></a>
<a href=""><img src="imgs/www/lipsum07.gif" id="fotoimg_3" /></a>
<a href=""><img src="imgs/www/lipsum07.gif" id="fotoimg_4" /></a>
<a href=""><img src="imgs/www/lipsum07.gif" id="fotoimg_5" /></a>
</div>
<div id="foto_down" onclick="imgs_down(1)">DOWN</div>
</div>

Edited by Victor Ananiev
Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0
document.getElementById('fotoimg_'+img_num).arr_num=start_pos;

я так понял нельзя напрямую указывать значения и создавать свойства... но как тогда их обьявлять?

1. Опера какая версия?

2. Попробуй разделить строку на два действия

var node = document.getElementById('fotoimg_'+img_num);
alert( node.arr_num + " " + start_pos);
node.arr_num = start_pos;

Link to comment
Share on other sites

  • 0

хм, я уже переписал все на массивах))) задрало, опера 9,62)

Теперь только на вот это ругается:

document.getElementById('fotoimg_'+img_num).src=imgs[start_pos];

Вопрос закрыт, был лишний проход цыкла))) Спасибо s0rr0w)

Link to comment
Share on other sites

  • 0
хм, я уже переписал все на массивах))) задрало, опера 9,62)

Теперь только на вот это ругается:

document.getElementById('fotoimg_'+img_num).src=imgs[start_pos];

Погоди, ругаться он может что в этот раз, что в прошлый, на одно и то же.

А ты случайно не вызываешь скрипт ДО того, как сформировано дерево элементов?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy