CHANGING IMAGE |
CHANGING IMAGE |
Mattab0lism |
Jun 19 2018, 08:10 PM
Post
#1
|
Group: Members Posts: 5 Joined: 16-June 18 Member No.: 26,660 |
Can someone point out what code is stopping these two parts working alongside eachother please
<div> <!IMAGE SWAPPER> <script type="text/javascript" id="1"> var image_tracker = 'POSTER1'; function change(){ var image = document.getElementById('P1'); if(image_tracker=='POSTER1'){ image.src='images/2018-06-17 15.21.07 4.png'; image_tracker='POSTER2'; } else{ image.src='images/1_0000.gif'; image_tracker='POSTER1'; } } </script> </div> <div> <!IMAGE SWAPPER> <script type="text/javascript" id="2"> var image_tracker = 'POSTER3'; function change(){ var image = document.getElementById('P2'); if(image_tracker=='POSTER3'){ image.src='images/arikara.png'; image_tracker='POSTER4'; } else{ image.src='images/arikara.gif'; image_tracker='POSTER3'; } } </script> </div> |
Christian J |
Jun 20 2018, 06:53 AM
Post
#2
|
. Group: WDG Moderators Posts: 9,661 Joined: 10-August 06 Member No.: 7 |
Also there are two functions with the same name. For just a few IMG elements, you might create separate functions and variable names, but if there's a lot of them you might use a single function and e.g. pass each IMG element ID as the function argument.
Also, <!IMAGE SWAPPER> is invalid HTML, that should propably be CODE <!-- IMAGE SWAPPER --> |
Mattab0lism |
Jun 20 2018, 12:05 PM
Post
#3
|
Group: Members Posts: 5 Joined: 16-June 18 Member No.: 26,660 |
Also there are two functions with the same name. For just a few IMG elements, you might create separate functions and variable names, but if there's a lot of them you might use a single function and e.g. pass each IMG element ID as the function argument. Also, <!IMAGE SWAPPER> is invalid HTML, that should propably be CODE <!-- IMAGE SWAPPER --> THANKS! By creating a separate ones they now work It would be more efficient as a single function but im not sure how to make arguements |
Christian J |
Jun 20 2018, 03:32 PM
Post
#4
|
. Group: WDG Moderators Posts: 9,661 Joined: 10-August 06 Member No.: 7 |
You're welcome!
It would be more efficient as a single function but im not sure how to make arguements See here for an example: http://www.quirksmode.org/js/function.html But here's another idea that instead stores the image on/off URLs in a nested array (called toggle_arr below): CODE <script type="text/javascript"> window.addEventListener('load', function() { // list image URLs here, one pair for each IMG element: var toggle_arr=[ ['dog.jpg','cat.jpg'], ['dog.jpg','cat.jpg'], ]; var toggle=document.getElementsByClassName('toggle'); for(var i=0; i<toggle.length; i++) { toggle[i].counter=i; toggle[i].swapped=0; toggle[i].onclick=function() { if(this.swapped==0) { this.src=toggle_arr[this.counter][1]; this.swapped=1; } else { this.src=toggle_arr[this.counter][0]; this.swapped=0; } } } }, false); </script> Click image to toggle: <img src="dog.jpg" width="100" height="50" alt="" class="toggle"> <img src="dog.jpg" width="100" height="50" alt="" class="toggle"> Note that you toggle these images by clicking on them, if you want to use some other method like clicking a button the script must be rewritten. |
Mattab0lism |
Jun 22 2018, 11:30 AM
Post
#5
|
Group: Members Posts: 5 Joined: 16-June 18 Member No.: 26,660 |
This is great! Thanks! Is there a way of changing the dimensions of the 'cat'?
You're welcome! It would be more efficient as a single function but im not sure how to make arguements See here for an example: http://www.quirksmode.org/js/function.html But here's another idea that instead stores the image on/off URLs in a nested array (called toggle_arr below): CODE <script type="text/javascript"> window.addEventListener('load', function() { // list image URLs here, one pair for each IMG element: var toggle_arr=[ ['dog.jpg','cat.jpg'], ['dog.jpg','cat.jpg'], ]; var toggle=document.getElementsByClassName('toggle'); for(var i=0; i<toggle.length; i++) { toggle[i].counter=i; toggle[i].swapped=0; toggle[i].onclick=function() { if(this.swapped==0) { this.src=toggle_arr[this.counter][1]; this.swapped=1; } else { this.src=toggle_arr[this.counter][0]; this.swapped=0; } } } }, false); </script> Click image to toggle: <img src="dog.jpg" width="100" height="50" alt="" class="toggle"> <img src="dog.jpg" width="100" height="50" alt="" class="toggle"> Note that you toggle these images by clicking on them, if you want to use some other method like clicking a button the script must be rewritten. |
Lo-Fi Version | Time is now: 28th April 2024 - 08:08 AM |