slideshow

  • #1
N

nob

Mitglied
Themenersteller
Dabei seit
08.02.2005
Beiträge
6
Reaktionspunkte
0
Hallo

Ich habe folgendes Problem:
Ich habe ein Javascript runtergeladen, dass Bilder von rechts nach links fahren lässt.
Man kann dort eine sliderwidth definieren. Ich möchte aber keine fixe Breite angeben.
Die Bilder sollten in einer Tabelle hin und her fahren, die Tabelle hat aber eine unbestimmte Breite.
Hat jemand eine Idee?

Hier das Skript
Code:
<script type=text/javascript>

/***********************************************
* Conveyor belt slideshow script- © Dynamic Drive DHTML code library ([url]www.dynamicdrive.com[/url])
* This notice MUST stay intact for legal use
* Visit Dynamic Drive at [url]http://www.dynamicdrive.com/[/url] for full source code
***********************************************/


//Specify the slider's width (in pixels)
var sliderwidth=900
alert(window.innerWidth);
//Specify the slider's height
var sliderheight=85px
//Specify the slider's slide speed (larger is faster 1-10)
var slidespeed=1
//configure background color:
slidebgcolor=#EAEAEA

//Specify the slider's images
var leftrightslide=new Array()
var finalslide=''
leftrightslide[0]='<a href=[url]http://><img[/url] src=images/x.jpg border=1></a>'


//Specify gap between each image (use HTML):
var imagegap= 

//Specify pixels gap between each slideshow rotation (use integer):
var slideshowgap=5


////NO NEED TO EDIT BELOW THIS LINE////////////

var copyspeed=slidespeed
leftrightslide='<nobr>'+leftrightslide.join(imagegap)+'</nobr>'
var iedom=document.all||document.getElementById
if (iedom)
document.write('<span id=temp style=visibility:hidden;position:absolute;top:-100px;left:-9000px>'+leftrightslide+'</span>')
var actualwidth=''
var cross_slide, ns_slide

function fillup(){
if (iedom){
cross_slide=document.getElementById? document.getElementById(test2) : document.all.test2
cross_slide2=document.getElementById? document.getElementById(test3) : document.all.test3
cross_slide.innerHTML=cross_slide2.innerHTML=leftrightslide
actualwidth=document.all? cross_slide.offsetWidth : document.getElementById(temp).offsetWidth
cross_slide2.style.left=actualwidth+slideshowgap+px
}
else if (document.layers){
ns_slide=document.ns_slidemenu.document.ns_slidemenu2
ns_slide2=document.ns_slidemenu.document.ns_slidemenu3
ns_slide.document.write(leftrightslide)
ns_slide.document.close()
actualwidth=ns_slide.document.width
ns_slide2.left=actualwidth+slideshowgap
ns_slide2.document.write(leftrightslide)
ns_slide2.document.close()
}
lefttime=setInterval(slideleft(),30)
}
window.onload=fillup

function slideleft(){
if (iedom){
if (parseInt(cross_slide.style.left)>(actualwidth*(-1)+8))
cross_slide.style.left=parseInt(cross_slide.style.left)-copyspeed+px
else
cross_slide.style.left=parseInt(cross_slide2.style.left)+actualwidth+slideshowgap+px

if (parseInt(cross_slide2.style.left)>(actualwidth*(-1)+8))
cross_slide2.style.left=parseInt(cross_slide2.style.left)-copyspeed+px
else
cross_slide2.style.left=parseInt(cross_slide.style.left)+actualwidth+slideshowgap+px

}
else if (document.layers){
if (ns_slide.left>(actualwidth*(-1)+8))
ns_slide.left-=copyspeed
else
ns_slide.left=ns_slide2.left+actualwidth+slideshowgap

if (ns_slide2.left>(actualwidth*(-1)+8))
ns_slide2.left-=copyspeed
else
ns_slide2.left=ns_slide.left+actualwidth+slideshowgap
}
}


if (iedom||document.layers){
with (document){
document.write('<table border=0 cellspacing=0 cellpadding=0><td>')
if (iedom){
write('<div style=position:relative;width:'+sliderwidth+';height:'+sliderheight+';overflow:hidden>')
write('<div style=position:absolute;width:'+sliderwidth+';height:'+sliderheight+';background-color:'+slidebgcolor+' onMouseover=copyspeed=0 onMouseout=copyspeed=slidespeed>')
write('<div id=test2 style=position:absolute;left:0px;top:0px></div>')
write('<div id=test3 style=position:absolute;left:-1000px;top:0px></div>')
write('</div></div>')
}
else if (document.layers){
write('<ilayer width='+sliderwidth+' height='+sliderheight+' name=ns_slidemenu bgColor='+slidebgcolor+'>')
write('<layer name=ns_slidemenu2 left=0 top=0 onMouseover=copyspeed=0 onMouseout=copyspeed=slidespeed></layer>')
write('<layer name=ns_slidemenu3 left=0 top=0 onMouseover=copyspeed=0 onMouseout=copyspeed=slidespeed></layer>')
write('</ilayer>')
}
document.write('</td></table>')
}
}
</script>
 
  • #2
Hi nob,

probier mal folgendes;

in Zeile 96 die Breite der Tabelle auf 100% setzen (oder wie du auch willst)

Code:
....
document.write('<table border=0 width=100% cellspacing=0 cellpadding=0><td>')
....

und dann die sliderwidth ebenfalls auf 100% setzen.

Einzigster Nachteil, wenn der Besucher die Browserbreite zwischendurch ändert (verkleinert) bedarf es eines Reloads, damit die neue Breite übernommen wird.

Aber Teste es erstmal so.

gruss conny
 
  • #3
Mist, ich habe beides schonmal versucht, aber nie beides miteinander ;)
Jetzt funktioniert es, danke!! :) :)
 
  • #4
So isses halt ;D ;D ;D
 
  • #5
Wenn das Problem erledigt ist nicht das erledigt Häkchen vergessen ;)
 
Thema:

slideshow

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.966
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben