www.webdeveloper.com
Results 1 to 2 of 2

Thread: image-slideshow.js question

  1. #1
    Join Date
    Jul 2009
    Posts
    2

    image-slideshow.js question

    I have picked up the following javascript to use as a photo image slider. The setup of the page has a large image and below it is the slideshow (thumbnails of X images). When I click a thumb in the slider the image above updates but the slider goes back to the original position (photo 1 - X). I can not figure out how to make the slideshow go to the clicked thumb so that the clicked thumb lies below the larger image above. Below is the javascript I am using if anyone knows or can help me figure out how to make the above occur I would be very thankful : P. The code was by Alf Magne Kalleland post@dhtmlgoodies.com

    Code:
       		
    	var activeImage = false;
    	var imageGalleryLeftPos = false;
    	var imageGalleryWidth = false;
    	var imageGalleryObj = false;
    	var maxGalleryXPos = false;
    	var slideSpeed = 0;
    	var imageGalleryCaptions = new Array();
    	function startSlide(e)
    	{
    		if(document.all)e = event;
    		var id = this.id;
    		this.getElementsByTagName('IMG')[0].src = 'images/' + this.id + '_over.gif';	
    		if(this.id=='arrow_right'){
    			slideSpeedMultiply = Math.floor((e.clientX - this.offsetLeft) / 5);
    			slideSpeed = -1*slideSpeedMultiply;
    			slideSpeed = Math.max(-10,slideSpeed);
    		}else{			
    			slideSpeedMultiply = 10 - Math.floor((e.clientX - this.offsetLeft) / 5);
    			slideSpeed = 1*slideSpeedMultiply;
    			slideSpeed = Math.min(10,slideSpeed);
    			if(slideSpeed<0)slideSpeed=10;
    		}
    	}
    	
    	function releaseSlide()
    	{
    		var id = this.id;
    		this.getElementsByTagName('IMG')[0].src = 'images/' + this.id + '.gif';
    		slideSpeed=0;
    	}
    		
    	function gallerySlide()
    	{
    		if(slideSpeed!=0){
    			var leftPos = imageGalleryObj.offsetLeft;
    			leftPos = leftPos/1 + slideSpeed;
    			if(leftPos>maxGalleryXPos){
    				leftPos = maxGalleryXPos;
    				slideSpeed = 0;
    				
    			}
    			if(leftPos<minGalleryXPos){
    				leftPos = minGalleryXPos;
    				slideSpeed=0;
    			}
    			
    			imageGalleryObj.style.left = leftPos + 'px';
    		}
    		setTimeout('gallerySlide()',20);
    		
    	}
    	
    	function showImage()
    	{
    		if(activeImage){
    			activeImage.style.filter = 'alpha(opacity=50)';	
    			activeImage.style.opacity = 0.5;
    		}	
    		this.style.filter = 'alpha(opacity=100)';
    		this.style.opacity = 1;	
    		activeImage = this;	
    	}
    	
    	function initSlideShow()
    	{
    		document.getElementById('arrow_left').onmousemove = startSlide;
    		document.getElementById('arrow_left').onmouseout = releaseSlide;
    		document.getElementById('arrow_right').onmousemove = startSlide;
    		document.getElementById('arrow_right').onmouseout = releaseSlide;
    		
    		imageGalleryObj = document.getElementById('theImages');
    		imageGalleryLeftPos = imageGalleryObj.offsetLeft;
    		imageGalleryWidth = document.getElementById('galleryContainer').offsetWidth - 80;
    		maxGalleryXPos = imageGalleryObj.offsetLeft; 
    		minGalleryXPos = imageGalleryWidth - document.getElementById('slideEnd').offsetLeft;
    		var slideshowImages = imageGalleryObj.getElementsByTagName('IMG');
    		for(var no=0;no<slideshowImages.length;no++){
    			slideshowImages[no].onmouseover = showImage;
    		}
    		
    		var divs = imageGalleryObj.getElementsByTagName('DIV');
    		for(var no=0;no<divs.length;no++){
    			if(divs[no].className=='imageCaption')imageGalleryCaptions[imageGalleryCaptions.length] = divs[no].innerHTML;
    		}
    		gallerySlide();
    	}
    	
    	
    	window.onload = initSlideShow;

  2. #2
    Join Date
    Jul 2009
    Posts
    2
    Just checking in as I am beginning to think its impossible.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles