• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] Slider wird nicht im IE angezeigt

ewsg

New member
Hallo,

Ich brauche mal euere Hilfe.

Ich ahbe einen Slider der unter:

http://xxxx/slider/index.html

zu sehen ist. Dieser wird im Firefox angezeigt aber im IE leider nicht.

Leider habe ich bis jetzt noch keine Lösung dafür.

Wer kann mir da helfen. Würde mich sehr freuen von euch Hilfe zu bekommen.

Hier der Code:
HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 //EN">
<HTML>

<HEAD>

</HEAD>

<body >

      	<div style="float: left; width: 20px; border: 0px solid;">
		<br>
	</div>
	<div style="padding: 15px; float: left; width: 250px; border: 0px solid;">
		

<script language="javascript">
var slideshow=false;
function hasload() {
	if (!slideshow) return true;
	for (i=0;i<pics.length;i++)
	{
		if (pics[i].complete == false)
		{
			setTimeout('hasload()',50);
			return true;
		}
	}
	run=true;
	init();
	return true;
}
</script>


		<script language="javascript" type="text/javascript">

		function mypush(arr,item) {
			arr.length+=1;
			arr[arr.length-1]=item;
		}
		
		var vertical = true;
		var direction = 0;
		var speed = 4;
		var pause = 0;
		var run = false;
		var space = 5;
		
		//internal vars
		var divs = new Array();  //image containers
		var pics = new Array();  //image objects
		var texts = new Array(); //image links
		var pos = new Array();   //pos of image containers
		var container = null;
		var containerSize = 0;
		slideshow = true;
		
		function gethtml(img,url) {
			return '<a href="'+url+'"><img src="'+img.src+'" name="slideshow_dia" border="0" style="border: 0px; cursor:pointer;"></a>';
		}
		
		function init() {
			var numberOfImages = pics.length;
			for (i=0;i<numberOfImages;i++) {
				var div=document.createElement("div");
				div.id="pic"+i;
				div.style.position="absolute";
				div.style.left="0px";
				div.style.right="0px";
				div.innerHTML=gethtml(pics[i],texts[i]);
				if (container==null) {
					container=document.getElementById("pictureContainer");
					if (vertical) {
						containerSize=parseInt(container.style.height);
					} else {
						containerSize=parseInt(container.style.width);
					}
				}
				container.appendChild(div);
				divs[i]=div;
			}
			var p=0;
			for (i=0;i<numberOfImages;i++) {
				pos[i]=p;
				if (vertical) {
					document.getElementById("pic"+i).style.top=p+"px";
					p+=pics[i].height+space;
				} else {
					document.getElementById("pic"+i).style.left=p+"px";
					p+=pics[i].width+space;
				}
			}
			move();
		}
		
		function move() {
			if (run) {
				var maxPos=0;
				var minPos=0;
				for (i=0;i<pos.length;i++) {
					if (pos[i]>=0 && pos[i]<speed && run) {
						run=false;
						setTimeout("start()",pause);
					}
					if (direction>0) {
						pos[i]=pos[i]+speed;
					} else { 
						pos[i]=pos[i]-speed;
					}
					if (vertical) {
						document.getElementById("pic"+i).style.top=pos[i]+"px";
					} else {
						document.getElementById("pic"+i).style.left=pos[i]+"px";
					}
					maxPos=pos[i]>pos[maxPos] ? i : maxPos;
					minPos=pos[i]<pos[minPos] ? i : minPos;
				}
				
				if (direction==1) {
					if (vertical) {
						var imgSize=pics[minPos].height;
					} else {
						var imgSize=pics[minPos].width;
					}
					if (pos[minPos]>=0) {
						pos[maxPos]=pos[minPos]-space-imgSize;
						if (vertical) {
							document.getElementById("pic"+maxPos).style.top=pos[maxPos]+"px";
						} else {
							document.getElementById("pic"+maxPos).style.left=pos[maxPos]+"px";
						}
					}
				} else {
					if (vertical) {
						var imgSize=pics[maxPos].height;
					} else {
						var imgSize=pics[maxPos].width;
					}
					if (pos[maxPos]<=containerSize) {
						pos[minPos]=pos[maxPos]+space+imgSize;
						if (vertical) {
							document.getElementById("pic"+minPos).style.top=pos[minPos]+"px";
						} else {
							document.getElementById("pic"+minPos).style.left=pos[minPos]+"px";
						}
					}
				}
			}
			setTimeout("move()",50);
		}
		
		function start() {
			run=true;
		}
		
		
		img=new Image();
		img.src='<img src="xxxx/files/pictures/image-slshow-038.jpg" />';
		mypush(pics,img);
		mypush(texts,'');
	
		
	
		img=new Image();
		img.src='xxxxx/files/pictures/image slshow-003.jpg';
		mypush(pics,img);
		mypush(texts,'');
	
		</script>
		
		<table>
		<tr>
			<td>
				<div id="pictureContainer" style="position: relative; width: 200px; height: 328px; overflow: hidden; margin: 0px; border: 0px;" onMouseOver="run=false" onMouseOut="run=true">
				</div>
			</td>
		</tr>
		</table>
		<script language="javascript">hasload()</script>
	
	</div>
</div>
</body>
</HTML>
 
Zuletzt bearbeitet:
(Beitrag #1 freigeschaltet. Sry für das späte Freischalten, habs eben erst gesehen. :))
 
In welchem IE hast du das getestet? In meinem IE10 wird er angezeigt... Steht bei dir etwas in der Fehlerkonsole?

PS: Irgendwie ist der Code seltsam:
Warum hast du eine Funktion mypush(), wenn man einfach direkt push() verwenden kann?
Auch ist das language-Attribut veraltet -> weg damit.
Ganz generell kann man das Skript verbessern: so soll man window.setTimeout() z.B. keinen String als Parameter geben, sondern eine Funktionsreferenz. Auch ist der Konstruktor von Array nicht wirklich optimal: die Literalschreibweise ist kürzer und konsistent.

PPS: Warum verwendest du denn HTML 3.2? Das ist etwas veraltet (von 1997!)...
 
Zurück
Oben