Помогите пожалуйста с JS. пиво/водка/деньги

3em

Статус: Offline
Реєстрація: 16.02.2006
Повідом.: 32590
Помогите пожалуйста с JS. пиво/водка/деньги

нужно такое как в прикрепленном файле, только

1. Естественно не Flash, а JavaScript

2. "1", "2"... это картинки, имена которых передаются в функцию. напр motion("1.jpg,2.jpg,3.jpg"). их может быть много. (от 2х до 40)

3. Нужно, чтобы был настоящий LOOP. т.е. не как в примере, а без пропусков! т.е. после "5" сразу идет "1" без белго поля.

4. все должно быть плавно, без "дерганий".

5. в инете ничего не нашел :((

спасибо
 

Вкладення

  • Untitled-1.swf
    1.3 КБ · Перегляди: 84
Останнє редагування:
swf не работает, по етому немогу точно сказать как ты все себе представляешь.
а в общем могу помочь
 
тю блин... :))

извините. сконвертил в 5й
 

Вкладення

  • Untitled-1.swf
    1.3 КБ · Перегляди: 108
не может не работать. 5й версии уже!

пробовал в гиф конвертировать. фигня получается...

в общем нужно чтобы картинки (width=~110px) в маленьком окошке (div width=~180px) двигались слева направо. плавно. обычный MARQUEE и его заменители не подходят из-за неплавного движения и из-за "пробела" между последней и первой картинкой. эта "лента" должна быть бесконечной.
 
Останнє редагування:
priblisitelno tak

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"Посилання видалено">
<html>
<head>
<title>loop</title>
<meta name="author" content="s">

<script>
var bimage = new Array();
var CHANGETIME = 10;

bimage[0] = 'Посилання видалено
bimage[1] = 'Посилання видалено
bimage[2] = 'Посилання видалено


var einlength=-1;
var bimg = Array();
var Last=false;
function Fragment(img,width){
einlength++;

this.length=einlength;
this.getLength=function(){return einlength;}
this.image=new Image();
this.image.src=img;
this.width=width;
this.left=this.width*this.getLength();
this.element=document.createElement('img');
this.element.src=this.image.src;
this.element.id='bild'+this.length; //alert(this.element.id);
this.element.style.position='absolute';
//this.element.style.margin='0px';

this.element.style.width=this.width+'px';
this.element.style.height=150+'px';
//this.element.style.left=this.left+'px';
this.element.style.top=0+'px';
this.schritt=function(){
if(this.left>500){
this.left=Last.left-this.width;
Last=this;
}
this.left++;

this.element.style.left=this.left+'px';
};
this.toString=function(){
return '<img border="1" id="bild'+this.length+'" src="'+this.src+'" style="width:'+this.width+'px; position:relative; float:left; top:0px; left:'+this.left+'px;" />';
}
if(Last==false)Last=this;
}
for (i = 0; i < bimage.length; i++){
bimg= new Fragment(bimage,250);
//alert(bimg.element.id);
}

var timer = 0;
var x = 1;


function inits(){
for(i=0;i<=bimg.length;i++){
document.getElementById('kino').appendChild(bimg.element);

}
}
function change(){
//if(x>2)x = 0;

//document.getElementById('a').src =
//alert(bimg[0].style.left);

for(i=bimg.length-1;i>=0; i--){
bimg.schritt();
//bimg.element.style.left=(x)+'px';
x++;
if(x>500+ 50)x=- 50;
}

}
</script>
</head>
<body onload=" inits(); " text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000">
<br />
adsfasdf<br />
adsfasdf<br />
adsfasdf<br /><a href="#" onclick="window.clearInterval(timer);">Stop</a><br />
<div id="kino" onmouseout="timer=window.setInterval('change()',20);" onmouseover="window.clearInterval(timer);" style="overflow:hidden; width:500px; height:150px;position:absolute; border: solid 1px;"></div>
</body>
</html>
 
без пробелов - геммор. да и смысла особого нет. предлагаю вот:

Посилання видалено

минусы - все-таки будет пробел
плюсы - работает почти везде (ie5.5+, ff, opera); удобно; безопасно для других скриптов в плане работы с событиями; пробел будет гораздо реже, чем можно ожидать;

переделал из вот этого:

Посилання видалено

можете покидать камнями :)
 
Назад
Зверху Знизу