Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

slideshow not working on webpage

Status
Not open for further replies.

vquick

IS-IT--Management
Jul 13, 2008
14
0
0
US
Im trying to use a gallerific slideshow and want to use perl to open any image in the directory and make the slideshow. It works if i dont use the for loop but as soon as use the for loop it stops working. any help would be appreciated.

here is the code:

<color red>
#!/usr/bin/perl
use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);

print "Content-type: text/html\n\n";

print <<startHTML;

<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Galleriffic | Custom layout with external controls</title>
<link rel="stylesheet" href="css/basic.css" type="text/css" />
<link rel="stylesheet" href="css/galleriffic-5.css" type="text/css" />

<!-- <link rel=&quot;stylesheet&quot; href=&quot;css/white.css&quot; type=&quot;text/css&quot; /> -->
<link rel="stylesheet" href="css/black.css" type="text/css" />

<script type="text/javascript" src="js/jquery-1.3.2.js"></script>
<script type="text/javascript" src="js/jquery.history.js"></script>
<script type="text/javascript" src="js/jquery.galleriffic.js"></script>
<script type="text/javascript" src="js/jquery.opacityrollover.js"></script>
<!-- We only want the thunbnails to display when javascript is disabled -->
<script type="text/javascript">
document.write('<style>.noscript { display: none; }</style>');
</script>
</head>
<body>
<div id="page">
<div id="container">
<h1><a href="index.html">Galleriffic</a></h1>
<h2>Alternate layout using custom previous/next page controls</h2>

<!-- Start Advanced Gallery Html Containers -->
<div class="navigation-container">
<div id="thumbs" class="navigation">
<a class="pageLink prev" style="visibility: hidden;" href="#" title="Previous Page"></a>

<ul class="thumbs noscript">

startHTML


opendir(DIR, "../images/featured/small_featured");

my @dir = readdir DIR;

for (@dir){
chomp;
next if $_ =~ /^\./;
print "<li>\n";
print "<a class=\"thumb\" href=\"../images/featured/small_featured/$_\" title=\"$_\">\n";
print "<img src=\"../images/featured/small_featured/$_\" alt=\"$_\" width=\"50\" height=\"50\">\n";
print "</a>\n";
print "<div class=\"caption\>\n";
print "<div class=\"image-title\">$_</div>";
print "<div class=\"download\">\n";
print "<a href=\"../images/featured/small_featured/$_\">Download Original</a>\n";
print "</div>\n";
print "</div>\n";
print "</li>\n";
}
print <<endHTML;



</ul>
<a class="pageLink next" style="visibility: hidden;" href="#" title="Next Page"></a>
</div>
</div>
<div class="content">
<div class="slideshow-container">
<div id="controls" class="controls"></div>
<div id="loading" class="loader"></div>
<div id="slideshow" class="slideshow"></div>
</div>
<div id="caption" class="caption-container">
<div class="photo-index"></div>
</div>
</div>
<!-- End Gallery Html Containers -->
<div style="clear: both;"></div>
</div>
</div>
<div id="footer">&copy; 2010 Sarah Paugh</div>
<script type="text/javascript">
jQuery(document).ready(function(\$) {
// We only want these styles applied when javascript is enabled
\$('div.content').css('display', 'block');

// Initially set opacity on thumbs and add
// additional styling for hover effect on thumbs
var onMouseOutOpacity = 0.67;
\$('#thumbs ul.thumbs li, div.navigation a.pageLink').opacityrollover({
mouseOutOpacity: onMouseOutOpacity,
mouseOverOpacity: 1.0,
fadeSpeed: 'fast',
exemptionSelector: '.selected'
});

// Initialize Advanced Galleriffic Gallery
var gallery = \$('#thumbs').galleriffic({
delay: 2500,
numThumbs: 10,
preloadAhead: 10,
enableTopPager: false,
enableBottomPager: false,
imageContainerSel: '#slideshow',
controlsContainerSel: '#controls',
captionContainerSel: '#caption',
loadingContainerSel: '#loading',
renderSSControls: true,
renderNavControls: true,
playLinkText: 'Play Slideshow',
pauseLinkText: 'Pause Slideshow',
prevLinkText: '&lsaquo; Previous Photo',
nextLinkText: 'Next Photo &rsaquo;',
nextPageLinkText: 'Next &rsaquo;',
prevPageLinkText: '&lsaquo; Prev',
enableHistory: true,
autoStart: false,
syncTransitions: true,
defaultTransitionDuration: 900,
onSlideChange: function(prevIndex, nextIndex) {
// 'this' refers to the gallery, which is an extension of $('#thumbs')
this.find('ul.thumbs').children()
.eq(prevIndex).fadeTo('fast', onMouseOutOpacity).end()
.eq(nextIndex).fadeTo('fast', 1.0);

// Update the photo index display
this.\$captionContainer.find('div.photo-index')
.html('Photo '+ (nextIndex+1) +' of '+ this.data.length);
},
onPageTransitionOut: function(callback) {
this.fadeTo('fast', 0.0, callback);
},
onPageTransitionIn: function() {
var prevPageLink = this.find('a.prev').css('visibility', 'hidden');
var nextPageLink = this.find('a.next').css('visibility', 'hidden');

// Show appropriate next / prev page links
if (this.displayedPage > 0)
prevPageLink.css('visibility', 'visible');

var lastPage = this.getNumPages() - 1;
if (this.displayedPage < lastPage)
nextPageLink.css('visibility', 'visible');

this.fadeTo('fast', 1.0);
}
});

/**************** Event handlers for custom next / prev page links **********************/

gallery.find('a.prev').click(function(e) {
gallery.previousPage();
e.preventDefault();
});

gallery.find('a.next').click(function(e) {
gallery.nextPage();
e.preventDefault();
});

/****************************************************************************************/

/**** Functions to support integration of galleriffic with the jquery.history plugin ****/

// PageLoad function
// This function is called when:
// 1. after calling $.historyInit();
// 2. after calling $.historyLoad();
// 3. after pushing "Go Back" button of a browser
function pageload(hash) {
// alert("pageload: " + hash);
// hash doesn't contain the first # character.
if(hash) {
\$.galleriffic.gotoImage(hash);
} else {
gallery.gotoIndex(0);
}
}

// Initialize history plugin.
// The callback is called at once by present location.hash.
\$.historyInit(pageload, "advanced.html");

// set onlick event for buttons using the jQuery 1.3 live method
\$("a[rel='history']").live('click', function(e) {
if (e.button != 0) return true;

var hash = this.href;
hash = hash.replace(/^.*#/, '');

// moves to a new page.
// pageload is called at once.
// hash don't contain "#", "?"
\$.historyLoad(hash);

return false;
});

/****************************************************************************************/
});

</script>
</body>
</html>
endHTML

</color>


if i replace the for loop with the following it works fine:
<color red>

<li>
<a class="thumb" href="../images/featured/small_featured/Spino 182.2.jpg" title="Spino 182.2.jpg">
<img src="../images/featured/small_featured/Spino 182.2.jpg" alt="Spino 182.2.jpg" / width="50" height="50">
</a>
<div class="caption">
<div class="image-title">Spino 182.2.jpg</div>
<div class="image-desc">Description</div>
<div class="download">
<a href="../images/featured/small_featured/Spino 182.2.jpg">Download Original</a>
</div>
</div>
</li>
<li>
<a class="thumb" href="../images/featured/small_featured/Spino 179.jpg" title="Spino 179.jpg">
<img src="../images/featured/small_featured/Spino 179.jpg" alt="Spino 179.jpg" width="50" height="50">
</a>
<div class="caption">
<div class="image-title">Spino 179.jpg</div>
<div class="image-desc">Description</div>
<div class="download">
<a href="../images/featured/small_featured/Spino 179.jpg">Download Original</a>
</div>
</div>
</li>
</color>
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top