-3
我有一個JavaScript的畫廊,它的效果很好。當我點擊一張圖片時,它會淡入並帶來我選擇的圖片,但它沒有NEXT和PREVIUS按鈕。我必須關閉那張圖片並打開另一張。 如何添加下一個和上一個按鈕? 日Thnx上一個和下一個按鈕上的JavaScript
這裏是js代碼(thickbox.js):
/*
* Thickbox 3.1 - One Box To Rule Them All.
* By Cody Lindley (http://www.codylindley.com)
* Copyright (c) 2007 cody lindley
* Licensed under the MIT License: http://www.opensource.org/licenses/mit-license.php
*/
var tb_pathToImage = "images/loadingAnimation.gif";
/*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/
//on page load call tb_init
$(document).ready(function(){
tb_init('a.thickbox, area.thickbox, input.thickbox');//pass where to apply thickbox
imgLoader = new Image();// preload image
imgLoader.src = tb_pathToImage;
});
//add thickbox to href & area elements that have a class of .thickbox
function tb_init(domChunk){
$(domChunk).click(function(){
var t = this.title || this.name || null;
var a = this.href || this.alt;
var g = this.rel || false;
tb_show(t,a,g);
this.blur();
return false;
});
}
function tb_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link
try {
if (typeof document.body.style.maxHeight === "undefined") {//if IE 6
$("body","html").css({height: "100%", width: "100%"});
$("html").css("overflow","hidden");
if (document.getElementById("TB_HideSelect") === null) {//iframe to hide select elements in ie6
$("body").append("<iframe id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>");
$("#TB_overlay").click(tb_remove);
}
}else{//all others
if(document.getElementById("TB_overlay") === null){
$("body").append("<div id='TB_overlay'></div><div id='TB_window'></div>");
$("#TB_overlay").click(tb_remove);
}
}
if(tb_detectMacXFF()){
$("#TB_overlay").addClass("TB_overlayMacFFBGHack");//use png overlay so hide flash
}else{
$("#TB_overlay").addClass("TB_overlayBG");//use background and opacity
}
if(caption===null){caption="";}
$("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
$('#TB_load').show();//show loader
var baseURL;
if(url.indexOf("?")!==-1){ //ff there is a query string involved
baseURL = url.substr(0, url.indexOf("?"));
}else{
baseURL = url;
}
var urlString = /\.jpg$|\.jpeg$|\.png$|\.gif$|\.bmp$/;
var urlType = baseURL.toLowerCase().match(urlString);
if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images
TB_PrevCaption = "";
TB_PrevURL = "";
TB_PrevHTML = "";
TB_NextCaption = "";
TB_NextURL = "";
TB_NextHTML = "";
TB_imageCount = "";
TB_FoundURL = false;
if(imageGroup){
TB_TempArray = $("a[@rel="+imageGroup+"]").get();
for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML === "")); TB_Counter++) {
var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString);
if (!(TB_TempArray[TB_Counter].href == url)) {
if (TB_FoundURL) {
TB_NextCaption = TB_TempArray[TB_Counter].title;
TB_NextURL = TB_TempArray[TB_Counter].href;
TB_NextHTML = "<span id='TB_next'> <a href='#'>Next ></a></span>";
} else {
TB_PrevCaption = TB_TempArray[TB_Counter].title;
TB_PrevURL = TB_TempArray[TB_Counter].href;
TB_PrevHTML = "<span id='TB_prev'> <a href='#'>< Prev</a></span>";
}
} else {
TB_FoundURL = true;
TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length);
}
}
}
imgPreloader = new Image();
imgPreloader.onload = function(){
imgPreloader.onload = null;
// Resizing large images - orginal by Christian Montoya edited by me.
var pagesize = tb_getPageSize();
var x = pagesize[0] - 150;
var y = pagesize[1] - 150;
var imageWidth = imgPreloader.width;
var imageHeight = imgPreloader.height;
if (imageWidth > x) {
imageHeight = imageHeight * (x/imageWidth);
imageWidth = x;
if (imageHeight > y) {
imageWidth = imageWidth * (y/imageHeight);
imageHeight = y;
}
} else if (imageHeight > y) {
imageWidth = imageWidth * (y/imageHeight);
imageHeight = y;
if (imageWidth > x) {
imageHeight = imageHeight * (x/imageWidth);
imageWidth = x;
}
}
// End Resizing
TB_WIDTH = imageWidth + 30;
TB_HEIGHT = imageHeight + 60;
$("#TB_window").append("<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div>");
$("#TB_closeWindowButton").click(tb_remove);
if (!(TB_PrevHTML === "")) {
function goPrev(){
if($(document).unbind("click",goPrev)){$(document).unbind("click",goPrev);}
$("#TB_window").remove();
$("body").append("<div id='TB_window'></div>");
tb_show(TB_PrevCaption, TB_PrevURL, imageGroup);
return false;
}
$("#TB_prev").click(goPrev);
}
if (!(TB_NextHTML === "")) {
function goNext(){
$("#TB_window").remove();
$("body").append("<div id='TB_window'></div>");
tb_show(TB_NextCaption, TB_NextURL, imageGroup);
return false;
}
$("#TB_next").click(goNext);
}
document.onkeydown = function(e){
if (e == null) { // ie
keycode = event.keyCode;
} else { // mozilla
keycode = e.which;
}
if(keycode == 27){ // close
tb_remove();
} else if(keycode == 190){ // display previous image
if(!(TB_NextHTML == "")){
document.onkeydown = "";
goNext();
}
} else if(keycode == 188){ // display next image
if(!(TB_PrevHTML == "")){
document.onkeydown = "";
goPrev();
}
}
};
tb_position();
$("#TB_load").remove();
$("#TB_ImageOff").click(tb_remove);
$("#TB_window").css({display:"block"}); //for safari using css instead of show
};
imgPreloader.src = url;
}else{//code to show html
var queryString = url.replace(/^[^\?]+\??/,'');
var params = tb_parseQuery(queryString);
TB_WIDTH = (params['width']*1) + 30 || 630; //defaults to 630 if no paramaters were added to URL
TB_HEIGHT = (params['height']*1) + 40 || 440; //defaults to 440 if no paramaters were added to URL
ajaxContentW = TB_WIDTH - 30;
ajaxContentH = TB_HEIGHT - 45;
if(url.indexOf('TB_iframe') != -1){// either iframe or ajax window
urlNoQuery = url.split('TB_');
$("#TB_iframeContent").remove();
if(params['modal'] != "true"){//iframe no modal
$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='Close'>close</a> or Esc Key</div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' > </iframe>");
}else{//iframe modal
$("#TB_overlay").unbind();
$("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'> </iframe>");
}
}else{// not an iframe, ajax
if($("#TB_window").css("display") != "block"){
if(params['modal'] != "true"){//ajax no modal
$("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a> or Esc Key</div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
}else{//ajax modal
$("#TB_overlay").unbind();
$("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");
}
}else{//this means the window is already up, we are just loading new content via ajax
$("#TB_ajaxContent")[0].style.width = ajaxContentW +"px";
$("#TB_ajaxContent")[0].style.height = ajaxContentH +"px";
$("#TB_ajaxContent")[0].scrollTop = 0;
$("#TB_ajaxWindowTitle").html(caption);
}
}
$("#TB_closeWindowButton").click(tb_remove);
if(url.indexOf('TB_inline') != -1){
$("#TB_ajaxContent").append($('#' + params['inlineId']).children());
$("#TB_window").unload(function() {
$('#' + params['inlineId']).append($("#TB_ajaxContent").children()); // move elements back when you're finished
});
tb_position();
$("#TB_load").remove();
$("#TB_window").css({display:"block"});
}else if(url.indexOf('TB_iframe') != -1){
tb_position();
if($.browser.safari){//safari needs help because it will not fire iframe onload
$("#TB_load").remove();
$("#TB_window").css({display:"block"});
}
}else{
$("#TB_ajaxContent").load(url += "&random=" + (new Date().getTime()),function(){//to do a post change this load method
tb_position();
$("#TB_load").remove();
tb_init("#TB_ajaxContent a.thickbox");
$("#TB_window").css({display:"block"});
});
}
}
if(!params['modal']){
document.onkeyup = function(e){
if (e == null) { // ie
keycode = event.keyCode;
} else { // mozilla
keycode = e.which;
}
if(keycode == 27){ // close
tb_remove();
}
};
}
} catch(e) {
//nothing here
}
}
//helper functions below
function tb_showIframe(){
$("#TB_load").remove();
$("#TB_window").css({display:"block"});
}
function tb_remove() {
$("#TB_imageOff").unbind("click");
$("#TB_closeWindowButton").unbind("click");
$("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();});
$("#TB_load").remove();
if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
$("body","html").css({height: "auto", width: "auto"});
$("html").css("overflow","");
}
document.onkeydown = "";
document.onkeyup = "";
return false;
}
function tb_position() {
$("#TB_window").css({marginLeft: '-' + parseInt((TB_WIDTH/2),10) + 'px', width: TB_WIDTH + 'px'});
if (!(jQuery.browser.msie && jQuery.browser.version < 7)) { // take away IE6
$("#TB_window").css({marginTop: '-' + parseInt((TB_HEIGHT/2),10) + 'px'});
}
}
function tb_parseQuery (query) {
var Params = {};
if (! query) {return Params;}// return empty object
var Pairs = query.split(/[;&]/);
for (var i = 0; i < Pairs.length; i++) {
var KeyVal = Pairs[i].split('=');
if (! KeyVal || KeyVal.length != 2) {continue;}
var key = unescape(KeyVal[0]);
var val = unescape(KeyVal[1]);
val = val.replace(/\+/g, ' ');
Params[key] = val;
}
return Params;
}
function tb_getPageSize(){
var de = document.documentElement;
var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight;
arrayPageSize = [w,h];
return arrayPageSize;
}
function tb_detectMacXFF() {
var userAgent = navigator.userAgent.toLowerCase();
if (userAgent.indexOf('mac') != -1 && userAgent.indexOf('firefox')!=-1) {
return true;
}
}
`
這裏是HTML: `
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>STUDIOCLICK - PORTFOLIO</title>
<!-- CSS Files -->
<link href="css/reset.css" rel="stylesheet" type="text/css" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="css/thickbox.css" type="text/css" media="screen" />
<link rel="stylesheet" type="text/css" href="css/superfish.css" media="screen" />
<style type="text/css">
.sf-sub-indicator {
behavior: url(css/iepngfix.htc)
}
;
</style>
<!-- End of CSS Files -->
<!-- Javascript Files -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" src="javascript/thickbox.js"></script>
<script type="text/javascript" src="javascript/superfish.js"></script>
<script type="text/javascript" src="javascript/dd.min.js"></script>
<script type="text/javascript">
//<![CDATA[
// initialise plugins
$(document).ready(function() {
if ($('#slider').length == 1)
{
$('#slider').cycle({
fx: 'fade',
speed: 2000,
timeout: 4000
});
}
var ie6 = $.browser.msie && /MSIE 6.0/.test(navigator.userAgent);
if (!ie6)
{
$('ul.sf-menu').superfish({
delay: 1000, // one second delay on mouseout
animation: {opacity:'show',height:'show'}, // fade-in and slide-down animation
speed: 'normal' // faster animation speed
});
}
else
{
DD_belatedPNG.fix('#topbar, img, a, .commentbubble, .infobubble, .view-all, #category-picture1, #category-picture2, #category-picture3, #footer');
}
});
//]]>
</script>
<!-- End of Javascript Files -->
</head>
<body>
<!-- Wrapper -->
<div id="wrapper">
<!-- Top bar -->
<div id="topbar">
<!-- Logo -->
<img class="logo" src="images/logo.png" alt="logo" />
<!-- Menu -->
<div id="secnav">
<ul>
<li> <a href="#">SIGN UP</a> </li>
<li class="noimg"> <a href="#">LOGIN</a> </li>
</ul>
</div>
<div class="menu">
<ul class="sf-menu">
<li> <a href="index.html">HOME</a></li>
<li> <a href="about.html">ABOUT</a>
<ul>
<li class="first"><a href="about.html">TEAM</a></li>
<li><a href="about.html">PHILOSOPHY</a></li>
<li><a href="about.html">COMPANY</a></li>
<li class="last"><a href="about.html">PRODUCTS</a>
<ul>
<li class="first"><a href="about.html">PRODUCT ONE</a></li>
<li><a href="about.html">PRODUCT TWO</a></li>
<li class="last"><a href="about.html">PRODUCT THREE</a></li>
</ul>
</li>
</ul>
</li>
<li> <a class="on" href="portfolio.html">PORTFOLIO</a>
<ul>
<li><a href="portfolio.html">WEBDESIGN</a></li>
<li><a href="portfolio.html">PHOTOS</a>
<ul>
<li class="first"><a href="portfolio.html">NATURE</a></li>
<li><a href="portfolio.html">ANIMALS</a></li>
<li class="last"><a href="portfolio.html">CITIES</a>
<ul>
<li class="first"><a href="portfolio.html">NEW YORK</a></li>
<li><a href="portfolio.html">MONTREAL</a></li>
<li class="last"><a href="portfolio.html">LAS VEGAS</a></li>
</ul>
</li>
</ul>
</li>
<li class="last"><a href="portfolio.html">ARTS</a></li>
</ul>
</li>
<li> <a href="blog.html">BLOG</a>
<ul>
<li class="first"><a href="blog.html">CATEGORY ONE</a></li>
<li><a href="blog.html">CATEGORY TWO</a></li>
<li class="last"><a href="blog.html">CATEGORY THREE</a></li>
</ul>
</li>
<li> <a href="contact.html">CONTACT</a> </li>
</ul>
</div>
<!-- End of Menu -->
</div>
<!-- End of Topbar -->
<!-- Introtext -->
<div id="introtext">
<!-- Subcategory-->
<div class="subcategory">
<h1>CATEGORY +</h1>
<ul>
<li><a href="#">NATURE</a></li>
<li><a href="#">CITY</a></li>
<li><a href="#">ANIMAL</a></li>
<li><a href="#">ABSTRACT</a></li>
</ul>
</div>
<!-- End of subcategory-->
<h1>PORTFOLIO +</h1>
<p>Praesent id dolor et dolor viverra sagittis. Integer scelerisque quam nec est congue tempor eu ut metus. Etiam fringilla aliquam nulla eu bibendum. Ut cursus, ligula vel mollis hendrerit, est enim posuere velit, ultricies pretium tortor massa ut ipsum. Aenean a aliquet arcu.</p>
<div class="clear"></div>
</div>
<!-- End of introtext -->
<!-- Content -->
<div class="portfolioitem">
<ul>
<li><a class="thickbox" href="images/photo9big.jpg"><img src="images/photo9.png" alt="photo"/></a></li>
<li><a class="thickbox" href="images/photo1big.jpg"><img src="images/photo1.png" alt="photo"/></a></li>
<li class="last"><a class="thickbox" href="images/photo3big.jpg" ><img src="images/photo3.png" alt="photo" /></a></li>
<li><a class="thickbox" href="images/photo6big.jpg"><img src="images/photo6.png" alt="photo"/></a></li>
<li><a class="thickbox" href="images/photo5big.jpg"><img src="images/photo5.png" alt="photo"/></a></li>
<li class="last"><a class="thickbox" href="images/photo4big.jpg" ><img class="right" src="images/photo4.png" alt="photo" /></a></li>
<li><a class="thickbox" href="images/photo7big.jpg"><img src="images/photo7.png" alt="photo"/></a></li>
<li><a class="thickbox" href="images/photo2big.jpg" ><img class="right" src="images/photo2.png" alt="photo" /></a></li>
<li class="last"><a class="thickbox" href="images/photo1big.jpg"><img src="images/photo1.png" alt="photo"/></a></li>
</ul>
</div>
<div id="portfolionav">
<ul>
<li class="on"><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li class="next"><a href="#">NEXT</a></li>
</ul>
</div>
<!-- End of content-->
<div class="clear"></div>
<!-- Footer-->
<!-- End of footer-->
</div>
<!-- End of wrapper -->
</body>
</html>
`