Note that there are some explanatory texts on larger screens.

plurals
  1. PODisplay title or alt text on web page
    primarykey
    data
    text
    <p>At the minute I have a slideshow on my website displaying some images for a portfolio. It works great, but now I would like to add a caption using the alt text or title for underneath the image, in a separate box/div.</p> <p>Is this possible at all? and if so does anyone know any tutorials or resources to achieve this?</p> <p>at the minute this is how I display my images</p> <pre><code>&lt;ul class="slides"&gt; &lt;li&gt;&lt;img src="Pictures/1.jpg" width="400" height="200" title = ""alt="Marsa Alam underawter close up" /&gt;&lt;/li&gt; &lt;li&gt;&lt;img src="Pictures/2.jpg" width="400" height="200" alt="Marsa Alam underawtzxcxzczxczxczxczer close up" /&gt;&lt;/li&gt; &lt;li&gt;&lt;img src="Pictures/4.jpg" width="400" height="200" alt="Marsa Alam underawccccter close up" /&gt;&lt;/li&gt; &lt;li&gt;&lt;img src="Pictures/3.jpg" width="400" height="200" alt="Marsa Alam underawtcxzczxcxzczcxcxzcer close up" /&gt;&lt;/li&gt; &lt;/ul&gt; </code></pre> <p>to cycle through the images this script is used from <a href="http://tutorialzine.com/2010/09/html5-canvas-slideshow-jquery/" rel="nofollow">http://tutorialzine.com/2010/09/html5-canvas-slideshow-jquery/</a></p> <pre><code>$(window).load(function(){ // We are listening to the window.load event, so we can be sure // that the images in the slideshow are loaded properly. // Testing wether the current browser supports the canvas element: var supportCanvas = 'getContext' in document.createElement('canvas'); // The canvas manipulations of the images are CPU intensive, // this is why we are using setTimeout to make them asynchronous // and improve the responsiveness of the page. var slides = $('#slideshow li'), current = 0, slideshow = {width:0,height:0}; setTimeout(function(){ window.console &amp;&amp; window.console.time &amp;&amp; console.time('Generated In'); if(supportCanvas){ $('#slideshow img').each(function(){ if(!slideshow.width){ // Taking the dimensions of the first image: slideshow.width = this.width; slideshow.height = this.height; } // Rendering the modified versions of the images: createCanvasOverlay(this); }); } window.console &amp;&amp; window.console.timeEnd &amp;&amp; console.timeEnd('Generated In'); $('#slideshow .arrow').click(function(){ var li = slides.eq(current), canvas = li.find('canvas'), nextIndex = 0; // Depending on whether this is the next or previous // arrow, calculate the index of the next slide accordingly. if($(this).hasClass('next')){ nextIndex = current &gt;= slides.length-1 ? 0 : current+1; } else { nextIndex = current &lt;= 0 ? slides.length-1 : current-1; } var next = slides.eq(nextIndex); if(supportCanvas){ // This browser supports canvas, fade it into view: canvas.fadeIn(function(){ // Show the next slide below the current one: next.show(); current = nextIndex; // Fade the current slide out of view: li.fadeOut(function(){ li.removeClass('slideActive'); canvas.hide(); next.addClass('slideActive'); }); }); } else { // This browser does not support canvas. // Use the plain version of the slideshow. current=nextIndex; next.addClass('slideActive').show(); li.removeClass('slideActive').hide(); } }); },100); // This function takes an image and renders // a version of it similar to the Overlay blending // mode in Photoshop. function createCanvasOverlay(image){ var canvas = document.createElement('canvas'), canvasContext = canvas.getContext("2d"); // Make it the same size as the image canvas.width = slideshow.width; canvas.height = slideshow.height; // Drawing the default version of the image on the canvas: canvasContext.drawImage(image,0,0); // Taking the image data and storing it in the imageData array: var imageData = canvasContext.getImageData(0,0,canvas.width,canvas.height), data = imageData.data; // Loop through all the pixels in the imageData array, and modify // the red, green, and blue color values. for(var i = 0,z=data.length;i&lt;z;i++){ // The values for red, green and blue are consecutive elements // in the imageData array. We modify the three of them at once: data[i] = ((data[i] &lt; 128) ? (2*data[i]*data[i] / 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) / 255)); data[++i] = ((data[i] &lt; 128) ? (2*data[i]*data[i] / 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) / 255)); data[++i] = ((data[i] &lt; 128) ? (2*data[i]*data[i] / 255) : (255 - 2 * (255 - data[i]) * (255 - data[i]) / 255)); // After the RGB elements is the alpha value, but we leave it the same. ++i; } // Putting the modified imageData back to the canvas. canvasContext.putImageData(imageData,0,0); // Inserting the canvas in the DOM, before the image: image.parentNode.insertBefore(canvas,image); } }); </code></pre> <p>and the CSS for the slideshow Is here</p> <pre><code>#slideshow ul{ height:310px; position:absolute; top:10px; width:410px; } #slideshow li{ position:absolute; display:none; z-index:10; margin-left:-30px; margin-top:-15px; } #slideshow li:first-child{ display:block; margin-left:-30px; margin-top:-15px; } #slideshow .slideActive{ z-index:1000; } #slideshow canvas{ display:none; position:absolute; z-index:100; } #slideshow .arrow{ height:86px; width:60px; position:absolute; background:url('img/arrows.png') no-repeat; top:50%; margin-top:-43px; cursor:pointer; z-index:5000; } #slideshow .previous{ background-position:left top;left:0;} #slideshow .previous:hover{ background-position:left bottom;} #slideshow .next{ background-position:right top;right:0;} #slideshow .next:hover{ background-position:right bottom;} </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload