Oud javascriptje werkt niet meer

Status
Niet open voor verdere reacties.

acadvice

Nieuwe gebruiker
Lid geworden
18 dec 2013
Berichten
4
4 jaar geleden heb ik een javascriptje voor IE uit die tijd gemaakt.
Het zou een briefje van 10 Euro continu om de vertikale as moeten draaien.
Het briefje bestaat uit 2 plaatjes van 127 X 67 pixels zie hieronder hun afbeeldingen.

10ev.jpg

10ea.jpg

Ik werk nu met Chrome en Firefox, heb het weer nodig en van zolder gehaald, maar het werkt niet meer.
Graag wil ik het ook werkend houden voor IE.
Kan iemand het weer werkend maken?

Bij voorbaat dank,
*knip*, reacties graag via het forum

Zie de code hieronder:
HTML:
<html> 
<head> 
<style> 
img.biljet { 
width:100%; 
height:100%; 
} 
img.verschalen { 
width:100%; 
} 
#10euro { 
position:absolute; 
height:0px; 
width:0px; 
} 
</style> 
<script language="JavaScript"> 
var plaatjes=new Array() 
plaatjes[0]="pix/10ev.jpg" 
plaatjes[1]="pix/10ea.jpg" 
var laadplaatjes=new Array(); 
for (i=0;i<plaatjes.length;i++){ 
laadplaatjes=new Image(); 
laadplaatjes.src=plaatjes; 
} 
var teller=0 
var links=570 //einde biljet 
var boven=109 
var hoogte=laadplaatjes[0].height 
var vollebreedte=laadplaatjes[0].width 
var breedte=0 
var klok=null 
var stap=1 
var snelheid=20 
var pauze=1000 
var begin=0-vollebreedte 
function wissel(plaatje){ 
if (teller<plaatjes.length-1){ 
teller=teller+1 
} 
else{ 
teller=0 
} 
document.images[plaatje].src=plaatjes[teller] 
} 
function wijzig() { 
document.all['10euro'].style.left=links+(breedte/2) 
document.all['10euro'].style.width=vollebreedte-breedte 
} 
function schuiven() { 
if (begin<links-15){ 
begin=begin+8 
document.all['10euro'].style.left=begin 
klok=setTimeout("schuiven()",snelheid) 
} 
else if (begin<links-7){ 
begin=begin+4 
document.all['10euro'].style.left=begin 
klok=setTimeout("schuiven()",snelheid) 
} 
else if (begin<links-3){ 
begin=begin+2 
document.all['10euro'].style.left=begin 
klok=setTimeout("schuiven()",snelheid) 
} 
else if (begin<links){ 
begin=begin+1 
document.all['10euro'].style.left=begin 
klok=setTimeout("schuiven()",snelheid) 
} 
else{stap1()} 
} 
function stap1(){ 
if (breedte<vollebreedte+1){ 
wijzig() 
breedte=breedte+stap 
klok=setTimeout("stap1()",snelheid) 
} 
else{ 
wissel(0) 
stap2() 
} 
} 
function stap2(){ 
if (breedte>0){ 
breedte=breedte-stap 
wijzig() 
klok=setTimeout("stap2()",snelheid) 
} 
else{ 
stap1() 
} 
} 
function start(){ 
document.all['10euro'].style.top=boven 
document.all['10euro'].style.width=vollebreedte 
document.all['10euro'].style.left=begin 
document.all['10euro'].style.height=hoogte 
schuiven() 
} 
</script> 
</head> 
<body onload="start()"> 
<div id="10euro"><img src="pix/10ev.jpg" class="biljet"></div> 
</body> 
</html>
 
Laatst bewerkt door een moderator:
Misschien zijn een of meerdere commandos niet meer geldig door veranderingen/verwijdering van de api.

Krijg je error berichten in de console (shift-ctrl-j in firefox)?

En wat werkt er precies niet?
 
Dank je voor jouw reactie Kvothe,

Waarschijnlijk is de syntax gemoderniseerd, maar ja welke?
Ik heb al 4 jaar niets meer met javascript en CSS gedaan.

Chrome doet en vermeld niets.
En Firefox laat het eerste plaatje zien meldt het volgende:

"Een script op deze pagina is bezig, of het reageert niet meer. U kunt het script nu stoppen, of u kunt verdergaan om te zien of het script zal worden voltooid."

En dan heb ik de keuze uit doorgaan of stoppen.
Als ik op doorgaan klik komt na verloop van tijd het tweede plaatje beeldvullend gevolgd door de zelfde melding.

IE laat de plaatjes zien maar niet op de plek die CSS opgeeft, groter en kleiner worden en wisselt ze ook.

Volgens mij zit het in de functie schuiven, maar ik kom er niet uit.
 
Ik denk dat je hem beter kan herschrijven (en niet alleen omdat hij niet meer werkt - je kan het ook een stuk eenvoudiger en simpeler doen door o.a. canvas te gebruiken)

Werkt het trouwens op IE (of tenminste, een oude versie ervan)?
 
Laatst bewerkt:
Dank je wederom voor jouw reactie Kvothe,

Ik ben gestopt naar een oplossing in javascript.
Ik heb iets met CSS3 gevonden, maar dat werkt allen maar met 'hover' en wil wil het zo graag automatisch en continue willen draaien.
Misschien kan jij hier een bijdrage aan leveren.
Anders moet ik de vraag elders stellen.

Bij voorbaat dank,
*knip*, reacties graag via het forum niet via de mail

Zie de code hieronder:

10ev.jpg

10ea.jpg
HTML:
<html>

<head>

<style type="text/css">

/* entire container, keeps perspective */
.flip-container {
 	-webkit-perspective: 500;
 	-moz-perspective: 500;
 	-ms-perspective: 500;
 	-o-perspective: 500;
 	perspective: 500;
 }

/* flip the pane when hovered */
.flip-container:hover .flipper, .flip-container.hover .flipper {
	-webkit-transform: rotateY(180deg);
	-moz-transform: rotateY(180deg);
	-ms-transform: rotateY(180deg);
	-o-transform: rotateY(180deg);
	transform: rotateY(180deg);
}

.flip-container, .front, .back {
	width: 127px;
	height: 67px;
}

/* flip speed goes here */
.flipper {
	-webkit-transition: 2s;
	-moz-transition: 2s;
	-ms-transition: 2s;
	-o-transition: 2s;
	transition: 2s;
	-webkit-transform-style: preserve-3d;
	-moz-transform-style: preserve-3d;
	-ms-transform-style: preserve-3d;
	-o-transform-style: preserve-3d;
	transform-style: preserve-3d;

	position: relative;
}

/* hide back of pane during swap */
.front, .back {
	-webkit-backface-visibility: hidden;
	-moz-backface-visibility: hidden;
	-ms-backface-visibility: hidden;
	-o-backface-visibility: hidden;
	backface-visibility: hidden;

	position: absolute;
	top: 0;
	left: 0;
}

/* front pane, placed above back */
.front {
	z-index: 2;
}

/* back, initially hidden pane */
.back {
	-webkit-transform: rotateY(180deg);
	-moz-transform: rotateY(180deg);
	-ms-transform: rotateY(180deg);
	-o-transform: rotateY(180deg);
	transform: rotateY(180deg);
}

</style>

</head>

<body>

<div class="flip-container" ontouchstart="this.classList.toggle('hover');">
	<div class="flipper">
		<div class="front">
			<img src="pix/10ev.jpg">
		</div>
		<div class="back">
			<img src="pix/10ea.jpg">
		</div>
	</div>
</div>
</body>
</html>
 
Laatst bewerkt door een moderator:
Sorry voor de late reactie.

http://phpfiddle.org/api/run/h8h-3i2


Code:
<!DOCTYPE HTML>
<html>
  <head>
    <style>
      body {
        margin: 0px;
        padding: 0px;
      }
    </style>
  </head>
  <body>
    <div id="container"></div>
    <script src="http://d3lp1msu2r81bx.cloudfront.net/kjs/js/lib/kinetic-v5.0.0.min.js"></script>
    <script defer="defer">
		var imageObj = new Image();
     	imageObj.src = 'http://puu.sh/6nRMW.png';
		var images = ['http://puu.sh/6nRMW.png','http://puu.sh/6nUiT.png'];
		
     	var stage = new Kinetic.Stage({
        	container: 'container',
        	width: imageObj.width,
        	height: imageObj.height
      	});
		
      	var layer = new Kinetic.Layer();
		
       	var euro = new Kinetic.Image({
			x: Math.ceil(imageObj.width/2),
        	y: 0,
			image: imageObj,
        	offsetX: 63
      	});
		
      	layer.add(euro);
	
      	stage.add(layer);

      	var period = 2000;
		
      	var anim = new Kinetic.Animation(function(frame) {
       		var scale = Math.sin(frame.time * 2 * Math.PI / period);
			var a = Math.round(((frame.time)/period)%1);
			imageObj.src = images[a];
        	euro.scale({x:scale,y:1});
      	}, layer);

      	anim.start();
    </script>
  </body>
</html>
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan