제이쿼리 롤링 배너 질문 드립니다.

제이쿼리 롤링 배너 질문 드립니다.

QA

제이쿼리 롤링 배너 질문 드립니다.

본문

웹에서 아래 갤러리 쓰시거나 써보신분 계시나요????


GalleryView




코드 원문 사이트 링크 : http://spaceforaname.com/galleryview/#demos 

 

1405326004HnHjynv7UHq4hc7tvaOvxWpWoN3GwYGW.gif

아래 갤러리 에서 이미지 클릭하면 화면 전환 하고싶은데 코드 구조 때문인지


<a href=""></a> 가 먹지를 않네요...  이미지 정렬이 ul li 로 되어있어서 보통 li 위나 img 위에다가

a 걸면 그냥 걸려서 하면 되겠구나 하는데 아예 안대네요;; 온클릭도 써봤고 

클릭이벤트 막는거 같은거 바꿔봐도 안대고,.,

제이쿼리 겔러리는 [jquery galleryview 3.0] 씁니다...

멘토가 없고 혼자 그냥 마구마구 하는 타입이라 너무 힘이듭니다. 정말 정말요 ㅜㅜ

진짜 막히면 답도없고 검색해도 안나올경우엔 진짜 멘붕이에요..

정말 정말 부탁드립니다. 조언좀 부탁드립니다. ㅜㅠ부탁 부탁드립니다. 

 

 

자바 코드를 적으려하면 너무 길어서 적을수가 없네요 ㅜㅠ 일단 스크롤 코드만 적어봅니다.

 

<!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>GalleryView - Default Demo</title>
 
<!-- First, add jQuery (and jQuery UI if using custom easing or animation -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
 
<!-- Second, add the Timer and Easing plugins -->
<script type="text/javascript" src="../js/jquery.timers-1.2.js"></script>
<script type="text/javascript" src="../js/jquery.easing.1.3.js"></script>
 
<!-- Third, add the GalleryView Javascript and CSS files -->
<script type="text/javascript" src="../js/jquery.galleryview-3.0-dev.js"></script>
<link type="text/css" rel="stylesheet" href="../css/jquery.galleryview-3.0-dev.css" />
 
<!-- Lastly, call the galleryView() function on your unordered list(s) -->
<script type="text/javascript">
	$(function(){
		$('#myGallery').galleryView({
     filmstrip_style: 'showall',});
	});
</script>
</head>
 
<body>
	<ul id="myGallery">
		<li><img src="http://www.spaceforaname.com/galleryview/img/photos/bp1.jpg" alt="Lone Tree Yellowstone" />
		<li><img src="http://www.spaceforaname.com/galleryview/img/photos/bp2.jpg" alt="Is He Still There?!" />
		<li><img src="http://www.spaceforaname.com/galleryview/img/photos/bp4.jpg" alt="Noni Nectar For Green Gecko" />
		<li><img src="http://www.spaceforaname.com/galleryview/img/photos/bp7.jpg" alt="Flight of an Eagle Owl" />
		<li><img src="http://www.spaceforaname.com/galleryview/img/photos/bp14.jpg" alt="Winter Lollipops" />
		<li><img src="http://www.spaceforaname.com/galleryview/img/photos/bp26.jpg" alt="Day of Youth" />
		<li><img src="http://www.spaceforaname.com/galleryview/img/photos/bp27.jpg" alt="Sunbathing Underwater" />
		<li><img src="http://www.spaceforaname.com/galleryview/img/photos/bp28.jpg" alt="Untitled" />
		<li><img src="http://www.spaceforaname.com/galleryview/img/photos/bp41.jpg" alt="New Orleans Streetcar" />
		<li><img src="http://www.spaceforaname.com/galleryview/img/photos/bp49.jpg" alt="By The Wind of Chance" />
		<li><img src="http://www.spaceforaname.com/galleryview/img/photos/bp52.jpg" alt="Fishing on the Cloud" />
		<li><img src="http://www.spaceforaname.com/galleryview/img/photos/bp53.jpg" alt="Blue Lagoon" />
		<li><img src="http://www.spaceforaname.com/galleryview/img/photos/bp54.jpg" alt="Time" />
	</ul>
	<p>Please view the source of this page if you are having difficulties setting up GalleryView.</p>
</body>
</html>

 

 

이 질문에 댓글 쓰기 :

답변 3

 js를 화면 클릭시

function _act_link(해당화면번호) 함수를 호출하도록 하였습니다


demo.php 같이 첨부했구요.

demo.php 보기 힘드시면...

js만 쓰시고 _act_link(no)만 적용해서 사용하셔도 될것 같네요

링크는

link[0] = http://www.naver.com;

link[1] = http://www.sir.co.kr;

이런식으로 지정하시면 됩니다. 

http://cloud1.genedigm.com/test20140715/demos/

 

# jquery.galleryview-3.0-dev.js


/*
})(jQuery);
 Author:  Jack Anderson
 Version: 3.0 DEVELOPMENT
   See README.txt for instructions on how to markup your HTML
*/
// Make sure Object.create is available in the browser (for our prototypal inheritance)
// Courtesy of Douglas Crockford
var current_scene = "";
if (typeof Object.create !== 'function') {
    Object.create = function (o) {
        function F() {}
        F.prototype = o;
        return new F();
    };
}
(function ($) {
 // custom image object
 var gvImage = function (img) {
  this.src = { 
   panel: img.attr('src'),
   frame: img.data('frame') || img.attr('src')
  };
  this.scale = {
   panel: null,
   frame: null
  };
  this.height = 0;
  this.width = 0;
  this.attrs = {
   title: img.attr('title') || img.attr('alt'),
   description: img.data('description')
  };
  this.href = null;
  this.dom_obj = null;
  
  return this;
 },
 
 // utility function wrapper
 gv = {
  getInt: function(i) {
   i = parseInt(i, 10);
   return isNaN(i) ? 0 : i;
  },
  innerWidth: function(elem) {
   return this.getInt(elem.css('width')) || 0; 
  },
  outerWidth: function(elem) {
   return  this.innerWidth(elem) + 
     this.extraWidth(elem);
  },
  extraWidth: function(elem) {
   return this.getInt(elem.css('paddingLeft')) +
     this.getInt(elem.css('paddingRight')) +
     this.getInt(elem.css('borderLeftWidth')) +
     this.getInt(elem.css('borderRightWidth')); 
  },
  innerHeight: function(elem) {
   return this.getInt(elem.css('height'))|| 0;
  },
  outerHeight: function(elem) {
   return  this.innerHeight(elem) + 
     this.extraHeight(elem);
  },
  extraHeight: function(elem) {
   return  this.getInt(elem.css('paddingTop')) +
     this.getInt(elem.css('paddingBottom')) +
     this.getInt(elem.css('borderTopWidth')) +
     this.getInt(elem.css('borderBottomWidth'));
  }
 },
 
 /*
  GalleryView - Object
   The main gallery class
 */  
 GalleryView = {
  // array of dom elements
  elems: [
   '.gv_galleryWrap', '.gv_gallery',  '.gv_panelWrap',  '.gv_panel',
   'img.gv_image',  '.gv_infobar',  '.gv_filmstripWrap', '.gv_filmstrip',
   '.gv_frame',  '.gv_thumbnail',  '.gv_caption',    'img.gv_thumb',
   '.gv_navWrap',  '.gv_navNext',  '.gv_navPrev',   '.gv_navPlay',
   '.gv_panelNavNext', '.gv_panelNavPrev', '.gv_overlay',   '.gv_showOverlay',
   '.gv_imageStore'
  ],
  
  // create a jQuery element and apply attributes
  createElem: function(attrs,elem) {
   elem = document.createElement(elem);
   var $elem = $(elem);
   return $elem.attr(attrs);
  },
  
  // get the position of an element with respect
  // to the gallery wrapper
  getPos: function (el) {
   var self = this,
    dom = this.dom,
    el = el[0],
    el_id = el.id,
    left = 0,
    top = 0,
    gPos, gLeft, gTop;
    
   if (!el) { return { top: 0, left: 0 }; }
   
   if (el.offsetParent) {
    do {
     left += el.offsetLeft;
     top += el.offsetTop;
    } while (el = el.offsetParent);
   }
   
   //If we want the position of the gallery itself, return it
   if (el_id === self.id) { return { left: left, top: top }; }
   
   //Otherwise, get position of element relative to gallery
   else {
    gPos = self.getPos(dom.galleryWrap);
    gLeft = gPos.left;
    gTop = gPos.top;
    return { left: left - gLeft, top: top - gTop };
   }
  },
  
  // determine if mouse is within the boundary of the gallery wrapper
  mouseIsOverGallery: function (x, y) {
   var self = this,
    dom = this.dom,
    pos = this.getPos(dom.gv_galleryWrap),
    top = pos.top,
    left = pos.left;
    
   return x > left && x < left + gv.outerWidth(dom.gv_galleryWrap) && y > top && y < top + gv.outerHeight(dom.gv_galleryWrap);
  },
  
  // determine if mouse is within the boundary of the panel
  mouseIsOverPanel: function (x, y) {
   var self = this,
    dom = this.dom,
    pos = this.getPos(dom.gv_panelWrap),
    gPos = this.getPos(dom.gv_galleryWrap),
    top = pos.top + gPos.top,
    left = pos.left + gPos.left;
    
   return x > left && x < left + gv.outerWidth(dom.gv_panelWrap) && y > top && y < top + gv.outerHeight(dom.gv_panelWrap);
  },
  
  // create gvImage objects for each image in gallery
  storeImages: function() {
   var self = this;
   this.sourceImgs = $('li>img',this.$el);
   this.numImages = this.sourceImgs.length;
   this.gvImages = [];
   this.sourceImgs.each(function(i,img) {
    self.gvImages[i] = new gvImage($(img));
   });
  },
  
  setDimensions: function() {
   var self = this,
    dom = this.dom,
    widths = {
     prev: gv.innerWidth(dom.gv_navPrev),
     play: gv.innerWidth(dom.gv_navPlay),
     next: gv.innerWidth(dom.gv_navNext),
     filmstrip: this.opts.frame_width,
     fsMax: 0,
     fsFull: 0
    },
    heights = {
     prev: gv.innerHeight(dom.gv_navPrev),
     play: gv.innerHeight(dom.gv_navPlay),
     next: gv.innerHeight(dom.gv_navNext),
     filmstrip: this.opts.frame_height + (this.opts.show_captions ? gv.outerHeight(dom.gv_caption) : 0),
     fsMax: 0,
     fsFull: 0
    },
    panels = [];
   
   // nav
   if(this.filmstripOrientation === 'horizontal') {
    dom.gv_navWrap.css({
     width: widths.prev + widths.play + widths.next,
     height: Math.max(heights.prev,heights.play,heights.next)
    });
   } else {
    if(this.opts.filmstrip_style === 'scroll' && this.opts.frame_width < (widths.prev + widths.play + widths.next)) {
     dom.gv_navWrap.css({
      width: Math.max(widths.prev, widths.play, widths.next),
      height: heights.prev + heights.play + heights.next
     });
    } else {
     dom.gv_navWrap.css({
      width: widths.prev + widths.play + widths.next,
      height: Math.max(heights.prev,heights.play,heights.next)
     });
    }
   }
   
   if(this.filmstripOrientation === 'vertical' && widths.filmstrip < (widths.prev + widths.play + widths.next)) {
    dom.gv_navWrap.css({
     width: Math.max(widths.prev, widths.play, widths.next),
     height: heights.prev + heights.play + heights.next
    });
   } else {
    dom.gv_navWrap.css({
     width: widths.prev + widths.play + widths.next,
     height: Math.max(heights.prev,heights.play,heights.next)
    });
   }
   
   // panels
   dom.gv_panel.css({
    width: this.opts.panel_width,
    height: this.opts.panel_height
   });
   dom.gv_panelWrap.css({
    width: gv.outerWidth(dom.gv_panel),
    height: gv.outerHeight(dom.gv_panel)
   });
   dom.gv_overlay.css({
    width: this.opts.panel_width
   });
   
   
   
   $.each(this.gvImages,function(i,img) {
    dom.gv_panelWrap.append(dom.gv_panel.clone(true));
   });
   
   dom.gv_panels = dom.gv_panelWrap.find('.gv_panel');
   dom.gv_panels.remove();
   
   // filmstrip
   dom.gv_thumbnail.css({
    width: this.opts.frame_width,
    height: this.opts.frame_height
   });
   dom.gv_frame.css({
    width: gv.outerWidth(dom.gv_thumbnail),
    height: gv.outerHeight(dom.gv_thumbnail) + (this.opts.show_captions ? gv.outerHeight(dom.gv_caption) : 0),
    marginRight: this.opts.frame_gap,
    marginBottom: this.opts.frame_gap
   });
   
   
   if(this.filmstripOrientation === 'horizontal') {
    this.filmstripSize = Math.floor((gv.outerWidth(dom.gv_panelWrap) - gv.outerWidth(dom.gv_navWrap)) / (gv.outerWidth(dom.gv_frame) + this.opts.frame_gap));
    widths.fsMax = this.filmstripSize * (gv.outerWidth(dom.gv_frame) + this.opts.frame_gap);
    widths.fsFull = this.gvImages.length * (gv.outerWidth(dom.gv_frame) + this.opts.frame_gap);
    widths.filmstrip = Math.min(widths.fsMax,widths.fsFull);
    if(this.opts.filmstrip_style !== 'scroll') {
     heights.filmstrip = (Math.ceil(this.gvImages.length / this.filmstripSize) * (gv.outerHeight(dom.gv_frame) + this.opts.frame_gap)) - this.opts.frame_gap;
    }
   } else {
    this.filmstripSize = Math.floor((gv.outerHeight(dom.gv_panelWrap) - gv.outerHeight(dom.gv_navWrap)) / (gv.outerHeight(dom.gv_frame) + this.opts.frame_gap));
    heights.fsMax = this.filmstripSize * (gv.outerHeight(dom.gv_frame) + this.opts.frame_gap);
    heights.fsFull = this.gvImages.length * (gv.outerHeight(dom.gv_frame) + this.opts.frame_gap);
    heights.filmstrip = Math.min(heights.fsMax,heights.fsFull);
    if(this.opts.filmstrip_style !== 'scroll') {
     widths.filmstrip = (Math.ceil(this.gvImages.length / this.filmstripSize) * (gv.outerWidth(dom.gv_frame) + this.opts.frame_gap)) - this.opts.frame_gap;
    }
   }
   dom.gv_filmstripWrap.css({
    width: widths.filmstrip,
    height: heights.filmstrip
   });
   
   // gallery
   if(this.opts.show_filmstrip) {
    if(this.filmstripOrientation === 'horizontal') {
     dom.gv_gallery.css({
      width: gv.outerWidth(dom.gv_panelWrap),
      height: gv.outerHeight(dom.gv_panelWrap) + this.opts.frame_gap + (this.opts.show_filmstrip ? Math.max(gv.outerHeight(dom.gv_filmstripWrap),gv.outerHeight(dom.gv_navWrap)) : gv.outerHeight(dom.gv_filmstripWrap))
     });
    } else {
     dom.gv_gallery.css({
      width: gv.outerWidth(dom.gv_panelWrap) + this.opts.frame_gap + (this.opts.show_filmstrip ? Math.max(gv.outerWidth(dom.gv_filmstripWrap),gv.outerWidth(dom.gv_navWrap)) : gv.outerWidth(dom.gv_filmstripWrap)),
      height: gv.outerHeight(dom.gv_panelWrap)
     }); 
    }
   } else {
    dom.gv_gallery.css({
     width: gv.outerWidth(dom.gv_panelWrap),
     height: gv.outerHeight(dom.gv_panelWrap)
    }); 
   }
   
   dom.gv_galleryWrap.css({
     width: gv.outerWidth(dom.gv_gallery),
     height: gv.outerHeight(dom.gv_gallery),
     padding: this.opts.frame_gap
   });
  },
  
  setPositions: function() {
   var self = this,
    dom = this.dom,
    navVert = 0, fsVert = 0,
    navHorz = 0, fsHorz = 0,
    vert, horz;
   
   // determine vertical or horizontal offset
   // if negative, apply to filmstrip, otherwise apply to navbar
   if(this.filmstripOrientation === 'horizontal') {
    vert = Math.round((gv.outerHeight(dom.gv_filmstripWrap) - gv.outerHeight(dom.gv_navWrap)) / 2);
    if(vert < 0) { fsVert = -1 * vert; }
    else { navVert = vert; }
   } else {
    horz = Math.round((gv.outerWidth(dom.gv_filmstripWrap) - gv.outerWidth(dom.gv_navWrap)) / 2);
    if(horz < 0) { fsHorz = -1 * horz; }
    else { navHorz = horz; }
   }
   
   // for horizontal filmstrips w/o navigation, center the filmstrip under the panel
   if(!this.opts.show_filmstrip_nav && this.filmstripOrientation === 'horizontal') {
    fsHorz = Math.floor((gv.outerWidth(dom.gv_panelWrap) - gv.outerWidth(dom.gv_filmstripWrap)) / 2);
   }
   
   dom.gv_panelNavNext.css({ top: (gv.outerHeight(dom.gv_panel) - gv.outerHeight(dom.gv_panelNavNext)) / 2, right: 10 });
   dom.gv_panelNavPrev.css({ top: (gv.outerHeight(dom.gv_panel) - gv.outerHeight(dom.gv_panelNavPrev)) / 2, left: 10 });
   
   // pin elements to gallery corners according to filmstrip position
   switch(this.opts.filmstrip_position) {
    case 'top':
     dom.gv_navWrap.css({ top: navVert, right: navHorz });
     dom.gv_panelWrap.css({ bottom: 0, left: 0 });
     dom.gv_filmstripWrap.css({ top: fsVert, left: fsHorz });
     break;
    
    case 'right':
     dom.gv_navWrap.css({ bottom: navVert, right: navHorz });
     dom.gv_panelWrap.css({ top: 0, left: 0 });
     dom.gv_filmstripWrap.css({ top: fsVert, right: fsHorz });
     break;
    
    case 'left':
     dom.gv_navWrap.css({ bottom: navVert, left: navHorz });
     dom.gv_panelWrap.css({ top: 0, right: 0 });
     dom.gv_filmstripWrap.css({ top: fsVert, left: fsHorz });
     break;
    
    default:
     dom.gv_navWrap.css({ bottom: navVert, right: navHorz });
     dom.gv_panelWrap.css({ top: 0, left: 0 });
     dom.gv_filmstripWrap.css({ bottom: fsVert, left: fsHorz });
     break;
   }
   
   if(this.opts.overlay_position === 'top') {
    dom.gv_overlay.css({ top: 0, left: -99999 });
    dom.gv_showOverlay.css({ top: 0, left: 0 });
   } else {
    dom.gv_overlay.css({ bottom: 0, left: -99999 });
    dom.gv_showOverlay.css({ bottom: 0, left: 0 });
   }
   
   if(!this.opts.show_filmstrip_nav) {
    dom.gv_navWrap.remove(); 
   }
  },
  
  buildFilmstrip: function() {
   var self = this,
    dom = this.dom,
    framesLength = this.gvImages.length * ((this.filmstripOrientation === 'horizontal' ? this.opts.frame_width : this.opts.frame_height) + this.opts.frame_gap);
   
   dom.gv_frame.append(dom.gv_thumbnail);
   if(this.opts.show_captions) { 
    dom.gv_frame.append(dom.gv_caption);
   }
   dom.gv_thumbnail.css('opacity',this.opts.frame_opacity);
   
   dom.gv_thumbnail.bind({
    mouseover: function() {
     if(!$(this).hasClass('current')) {
      $(this).stop().animate({opacity:1},250);
     }
    },
    mouseout: function() {
     if(!$(this).hasClass('current')) {
      $(this).stop().animate({opacity:self.opts.frame_opacity},250);
     }
    }
   });
   
   // Drop a clone of the frame element into the filmstrip for each source image
   $.each(this.gvImages,function(i,img) {
    dom.gv_frame.clone(true).prependTo(dom.gv_filmstrip);
   });
   
   dom.gv_filmstrip.css({
    width: gv.outerWidth(dom.gv_frame),
    height: gv.outerHeight(dom.gv_frame)
   });
   
   // If we are scrolling the filmstrip, and we can't show all frames at once,
   // make two additional copies of each frame
   if(this.opts.filmstrip_style === 'scroll') {
    if(this.filmstripOrientation === 'horizontal') {
     if(framesLength > gv.innerWidth(dom.gv_filmstripWrap)) {
      dom.gv_filmstrip.find('.gv_frame').clone(true).appendTo(dom.gv_filmstrip).clone(true).appendTo(dom.gv_filmstrip);
      dom.gv_filmstrip.css('width',framesLength * 3);
      this.scrolling = true;
     } else {
      dom.gv_filmstrip.css('width',framesLength);
     }
    } else {
     if(framesLength > gv.innerHeight(dom.gv_filmstripWrap)) {
      dom.gv_filmstrip.find('.gv_frame').clone(true).appendTo(dom.gv_filmstrip).clone(true).appendTo(dom.gv_filmstrip);
      dom.gv_filmstrip.css('height',framesLength * 3);
      this.scrolling = true;
     } else {
      dom.gv_filmstrip.css('height',framesLength);
     }
    }
   } else {
    dom.gv_filmstrip.css({
     width: parseInt(dom.gv_filmstripWrap.css('width'),10)+this.opts.frame_gap,
     height: parseInt(dom.gv_filmstripWrap.css('height'),10)+this.opts.frame_gap
    });
   }
   dom.gv_frames = dom.gv_filmstrip.find('.gv_frame');
   $.each(dom.gv_frames,function(i,frame) {
    $(frame).data('frameIndex',i);        
   });
   dom.gv_thumbnails = dom.gv_filmstrip.find('div.gv_thumbnail');
  },
  
  buildGallery: function() {
   var self = this,
    dom = this.dom;
   
   this.setDimensions();
   this.setPositions();
   
   if(this.opts.show_filmstrip) {
    this.buildFilmstrip();
   }
  },
  
  showInfoBar: function() {
   if(!this.opts.show_infobar) { return; }
   var self = this,
    dom = this.dom;
   
   dom.gv_infobar.stop().stopTime('hideInfoBar_' + self.id).html((this.iterator+1) + ' of ' + this.numImages).show().css('opacity',this.opts.infobar_opacity);
   
   dom.gv_infobar.oneTime(2000 + this.opts.transition_speed,'hideInfoBar_' + self.id,function() {
     dom.gv_infobar.fadeOut(1000);
    });
  },
  
  initImages: function() {
   var self = this,
    dom = this.dom;
   $.each(this.gvImages,function(i,gvImage) {
    img = $('<img/>');
    img.css('visibility','hidden').data('index',i);
    img.bind('load.galleryview',function() {
     var _img = $(this),
      index = _img.data('index'),
      width = this.width,
      height = this.height,
      parent = dom[(_img.data('parent')).type].eq((_img.data('parent')).index),
      widthFactor = gv.innerWidth(parent) / width,
      heightFactor = gv.innerHeight(parent) / height,
      parentType = parent.hasClass('gv_panel') ? 'panel' : 'frame',
      heightOffset = 0, widthOffset = 0;
     
     gvImage.scale[parentType] = self.opts[parentType+'_scale'] === 'fit' ? Math.min(widthFactor,heightFactor) : Math.max(widthFactor,heightFactor);
     
     widthOffset = Math.round((gv.innerWidth(parent) - (width * gvImage.scale[parentType])) / 2);
     heightOffset = Math.round((gv.innerHeight(parent) - (height * gvImage.scale[parentType])) / 2); 
     
     _img.css({
      width: width * gvImage.scale[parentType],
      height: height * gvImage.scale[parentType],
      top: heightOffset,
      left: widthOffset
     });
     _img.hide().css('visibility','visible');
     _img.remove().appendTo(parent);
     
     if(parentType === 'frame') {
      _img.fadeIn();
      parent.parent().removeClass('gv_frame-loading');
      parent.parent().find('.gv_caption').html(gvImage.attrs.title);
     } else if(index === self.opts.start_frame - 1) {
      parent.prependTo(dom.gv_panelWrap);
      parent.removeClass('gv_panel-loading');
      _img.fadeIn();
      self.showInfoBar();
     } else {
      parent.removeClass('gv_panel-loading');
      _img.show();
     }
    });
    
    // store eventual image container as data property
    // append to temporary storage element and set src
    if(self.opts.show_panels) {
     img.clone(true)
      .data('parent',{type:'gv_panels',index:i})
      .appendTo(dom.gv_imageStore)
      .attr('src',gvImage.src.panel);
    }
    
    if(self.opts.show_filmstrip) {
     img.clone(true)
      .data('parent',{type:'gv_thumbnails',index:i})
      .appendTo(dom.gv_imageStore)
      .attr('src',gvImage.src.frame);
     
     if(dom.gv_frames.length > dom.gv_panels.length) {
      img.clone(true)
       .data('parent',{type:'gv_thumbnails',index:i+self.numImages})
       .appendTo(dom.gv_imageStore)
       .attr('src',gvImage.src.frame);
       
      img.clone(true)
       .data('parent',{type:'gv_thumbnails',index:i+self.numImages+self.numImages})
       .appendTo(dom.gv_imageStore)
       .attr('src',gvImage.src.frame);
     }
    }
   });
  },
  
  showNext: function() {
   this.navAction = 'next';
   this.showItem(this.frameIterator+1);
  },
  
  showPrev: function() {
   this.navAction = 'prev';
   this.showItem(this.frameIterator-1);
  },
  
  showItem: function(i) {
   if(isNaN(i)) { return; }
   if(!this.opts.show_filmstrip) { i = i % this.numImages; }
   
   var self = this,
    dom = this.dom,
    frame_i = i,
    newPanelStart,
    oldPanelEnd,
    oldIterator,
    panel,
    playing = false;
    
   // don't go out of bounds
   if(i >= this.numImages) {
    i = i % this.numImages;
   } else if(i < 0) {
    i = this.numImages - 1;
    if(dom.gv_frames != undefined) {
     frame_i = dom.gv_frames.length - 1;
    } else {
     frame_i = dom.gv_panels.length - 1;
    }
   }
   
   panel = dom.gv_panels.eq(i);
   current_scene = i;
   
   playing = this.playing;
   
   if(playing) {
    this.stopSlideshow(false);
   }
   
   this.unbindActions();
   
   dom.gv_gallery.oneTime(this.opts.transition_speed,'bindActions_' + self.id,function(){ if(playing) { self.startSlideshow(false); } self.bindActions(); });
   
   switch(this.opts.panel_animation) {
    case 'crossfade':
     dom.gv_panels.eq(this.iterator).fadeOut(this.opts.transition_speed,function(){$(this).remove();});
     panel.hide().prependTo(dom.gv_panelWrap).fadeIn(this.opts.transition_speed);
     break;
    case 'fade':
     dom.gv_panels.eq(this.iterator).remove();
     panel.hide().prependTo(dom.gv_panelWrap).fadeIn(this.opts.transition_speed);
     break;
    case 'slide':
     if(this.navAction === 'next' || (this.navAction === 'frame' && frame_i > this.iterator)) {
      newPanelStart = gv.outerWidth(dom.gv_panel);
      oldPanelEnd = -1 * gv.outerWidth(dom.gv_panel);
     } else {
      newPanelStart = -1 * gv.outerWidth(dom.gv_panel);
      oldPanelEnd = gv.outerWidth(dom.gv_panel);
     }
     
     panel.css({ left:newPanelStart }).appendTo(dom.gv_panelWrap).animate(
      { left:0 },
      { duration: this.opts.transition_speed,easing: this.opts.easing }
     );
     
     dom.gv_panels.eq(this.iterator).animate(
      { left: oldPanelEnd },
      { duration: this.opts.transition_speed, easing: this.opts.easing, complete: function(){ $(this).remove(); } }
     );
     break;
    default:
     dom.gv_panels.eq(this.iterator).remove();
     panel.prependTo(dom.gv_panelWrap);
     break;
   }
   
   this.updateOverlay(i);
   
   this.iterator = i;
   this.updateFilmstrip(frame_i);
   this.showInfoBar();
   
   
  },
  
  updateOverlay: function(i) {
   var self = this,
    dom = this.dom;
   
   if(this.overlayVisible) {
    this.hideOverlay(null,function(){
     dom.gv_overlay.html('<h4>'+self.gvImages[i].attrs.title+'</h4><p>'+self.gvImages[i].attrs.description+'</p>');
     self.showOverlay();
    });
   } else {
    dom.gv_overlay.html('<h4>'+self.gvImages[i].attrs.title+'</h4><p>'+self.gvImages[i].attrs.description+'</p>');
    dom.gv_overlay.css(this.opts.overlay_position,-1 * dom.gv_overlay.outerHeight());
   }
   
  },
  
  hideOverlay: function(s,callback) {
   var self = this,
    dom = this.dom,
    endOverlay = {},
    endButton = {},
    speed = s || self.opts.transition_speed / 2;
    
   callback = callback || function(){};
   
   endOverlay[this.opts.overlay_position] = -1 * dom.gv_overlay.outerHeight();
   endButton[this.opts.overlay_position] = 0;
   
   dom.gv_overlay.animate(endOverlay,{ 
    duration: speed, 
    easing: 'swing', 
    complete: callback
   });
   dom.gv_showOverlay.animate(endButton,{
    duration: speed,
    easing: 'swing'
   });
   
   this.overlayVisible = false;
  },
  
  showOverlay: function(s) {
   var self = this,
    dom = this.dom,
    startOverlay = {},
    endOverlay = {},
    endButton = {},
    speed = s || self.opts.transition_speed / 2;
   
   startOverlay[this.opts.overlay_position] = -1 * dom.gv_overlay.outerHeight();
   startOverlay.left = 0;
   
   endOverlay[this.opts.overlay_position] = 0;
   
   endButton[this.opts.overlay_position] = dom.gv_overlay.outerHeight();
   
   dom.gv_overlay.css(startOverlay);
   dom.gv_overlay.animate(endOverlay,{ duration: speed, easing: 'swing' });
   dom.gv_showOverlay.animate(endButton,{ duration: speed, easing: 'swing' });
   
   this.overlayVisible = true;
  },
  
  updateFilmstrip: function(to) {
   if(!this.opts.show_filmstrip) { this.frameIterator = to; return; }
   var self = this,
    dom = this.dom,
    targetThumbs = dom.gv_thumbnails.eq(this.iterator),
    filmstripIterator,
    distance;
   
   if(this.scrolling) {
    targetThumbs = targetThumbs.
        add(dom.gv_thumbnails.eq(this.iterator + this.numImages)).
        add(dom.gv_thumbnails.eq(this.iterator + (2 * this.numImages))); 
   }
   
   dom.gv_thumbnails.removeClass('current').animate({ opacity: this.opts.frame_opacity });
   targetThumbs.stop().addClass('current').animate({ opacity: 1 },500);
   
   
   if(this.scrolling) {
    if(this.filmstripOrientation === 'horizontal') {
     distance = (gv.outerWidth(dom.gv_frame) + this.opts.frame_gap) * (this.frameIterator - to);
     
     if(distance > 0) {
      distance = '+=' + Math.abs(distance);
     } else {
      distance = '-=' + Math.abs(distance);
     }
     dom.gv_filmstrip.animate({
      left: distance
     },{
      duration: this.opts.transition_speed, 
      easing: this.opts.easing, 
      complete: function(){
       if(to < self.numImages) {
        dom.gv_filmstrip.css('left',gv.getInt(dom.gv_filmstrip.css('left'))-(self.numImages*(gv.outerWidth(dom.gv_frame)+self.opts.frame_gap))); 
       } else if(to >= (self.numImages * 2)) {
        dom.gv_filmstrip.css('left',gv.getInt(dom.gv_filmstrip.css('left'))+(self.numImages*(gv.outerWidth(dom.gv_frame)+self.opts.frame_gap))); 
       }
       self.frameIterator = (to % self.numImages) + self.numImages;
      }
     });
    } else {
     distance = (gv.outerHeight(dom.gv_frame) + this.opts.frame_gap) * (this.frameIterator - to);
     
     if(distance > 0) {
      distance = '+=' + Math.abs(distance);
     } else {
      distance = '-=' + Math.abs(distance);
     }
     dom.gv_filmstrip.animate({
      top: distance
     },{
      duration: this.opts.transition_speed, 
      easing: this.opts.easing, 
      complete: function(){
       // adjust filmstrip position to ensure that there is always at least one frame behind
       // and (2 * filmstripSize) ahead
       if(to === 0) {
        dom.gv_filmstrip.css('top',gv.getInt(dom.gv_filmstrip.css('top'))-(self.numImages*(gv.outerHeight(dom.gv_frame)+self.opts.frame_gap))); 
        self.frameIterator = self.numImages;
       } else if(to > ((self.numImages * 3) - (self.filmstripSize * 2))) {
        dom.gv_filmstrip.css('top',gv.getInt(dom.gv_filmstrip.css('top'))+(self.numImages*(gv.outerHeight(dom.gv_frame)+self.opts.frame_gap))); 
        self.frameIterator = to - self.numImages;
       } else {
        self.frameIterator = to;
       }
      }
     });
    }
    
   } else {
    this.frameIterator = to;
   }
  },
  
  startSlideshow: function(changeIcon) {
   var self = this,
    dom = this.dom;
    
   if(!self.opts.enable_slideshow) { return; }
   
   if(changeIcon) {
    dom.gv_navPlay.removeClass('gv_navPlay').addClass('gv_navPause');
   }
   this.playing = true;
   dom.gv_galleryWrap.everyTime(this.opts.transition_interval,'slideshow_'+this.id,function(){ self.showNext(); });
  },
  
  stopSlideshow: function(changeIcon) {
   var self = this,
    dom = this.dom;
    
   if(changeIcon) {
    dom.gv_navPlay.removeClass('gv_navPause').addClass('gv_navPlay');
   }
   this.playing = false;
   dom.gv_galleryWrap.stopTime('slideshow_'+this.id);
  },
  
  enablePanning: function() {
   var self = this,
    dom = this.dom;
    
   if(!self.opts.enable_slideshow) { return; }
   
   dom.gv_panel.css('cursor','url(http://www.google.com/intl/en_ALL/mapfiles/openhand.cur), n-resize');
   if(this.opts.pan_style === 'drag') {
    dom.gv_panelWrap.delegate('.gv_panel img','mousedown.galleryview',function(e) {
     self.isMouseDown = true;
     $(this).css('cursor','url(http://www.google.com/intl/en_ALL/mapfiles/closedhand.cur), n-resize');
    }).delegate('.gv_panel img','mouseup.galleryview',function(e) {
     self.isMouseDown = false;
     $(this).css('cursor','url(http://www.google.com/intl/en_ALL/mapfiles/openhand.cur), n-resize');
    }).delegate('.gv_panel img','mousemove.galleryview',function(e) {
     var distY, distX,
      image = $(this),
      new_top, new_left;
     if(self.isMouseDown) {
      distY = e.pageY - self.mouse.y;
      distX = e.pageX - self.mouse.x;
      new_top = gv.getInt(image.css('top')) + distY;
      new_left = gv.getInt(image.css('left')) + distX;
       
      image.css('cursor','url(http://www.google.com/intl/en_ALL/mapfiles/closedhand.cur), n-resize');
      
      if(new_top > 0) new_top = 0;
      if(new_left > 0) new_left = 0;
      
      if(new_top < (-1 * (gv.outerHeight(image) - gv.innerHeight(dom.gv_panel)))) { new_top = -1 * (gv.outerHeight(image) - gv.innerHeight(dom.gv_panel)); }
      if(new_left < (-1 * (gv.outerWidth(image) - gv.innerWidth(dom.gv_panel)))) { new_left = -1 * (gv.outerWidth(image) - gv.innerWidth(dom.gv_panel)); }
      
      image.css('top',new_top);
      image.css('left',new_left);
     } else {
      image.css('cursor','url(http://www.google.com/intl/en_ALL/mapfiles/openhand.cur), n-resize'); 
     }
    });
   } else {
    
   }
  },
  
  bindActions: function() {
   var self = this,
    dom = this.dom;
   
   dom.gv_showOverlay.bind('click.galleryview',function(){
    if(self.overlayVisible) {
     self.hideOverlay(250);
    } else {
     self.showOverlay(250);
    }
   });
   
   dom.gv_navWrap.delegate('div','click.galleryview',function(){
    var el = $(this);
    if(el.hasClass('gv_navNext')) {
     self.showNext();
    } else if(el.hasClass('gv_navPrev')) {
     self.showPrev();
    } else if(el.hasClass('gv_navPlay')) {
     self.startSlideshow(true);
    } else if(el.hasClass('gv_navPause')) {
     self.stopSlideshow(true);
    }
    return false;
   });
 
   dom.gv_panelNavNext.bind('click.galleryview',function(){ 
    self.showNext(); 
    return false;
   });
   dom.gv_panelNavPrev.bind('click.galleryview',function(){
    self.showPrev(); 
    return false;
   });
   
   dom.gv_filmstripWrap.delegate('.gv_frame','click.galleryview',function(){
    var el = $(this),
     i = el.data('frameIndex');
    
    this.navAction = 'frame';
    self.showItem(i);
    return false;
   });
   
   dom.gv_panelWrap.bind('mouseover.galleryview',function(){
    self.showPanelNav();
   }).bind('mouseout.galleryview',function(){
    self.hidePanelNav();
   });
  },
  
  unbindActions: function() {
   var self = this,
    dom = this.dom;
    
   dom.gv_showOverlay.unbind('click.galleryview');
   dom.gv_panelNavNext.unbind('click.galleryview');
   dom.gv_panelNavPrev.unbind('click.galleryview');
   dom.gv_navWrap.undelegate('div','click.galleryview');
   dom.gv_filmstripWrap.undelegate('.gv_frame','click.galleryview');
  },
  
  showPanelNav: function() {
   var self = this,
    dom = this.dom;
    
   dom.gv_panelNavNext.show();
   dom.gv_panelNavPrev.show(); 
  },
  
  hidePanelNav: function() {
   var self = this,
    dom = this.dom;
    
   dom.gv_panelNavNext.hide();
   dom.gv_panelNavPrev.hide(); 
  },
  
  init: function(options,el) {
   var self = this,
    dom = this.dom = {};
    
   this.opts = $.extend({},$.fn.galleryView.defaults,options);
   this.el = el;
   this.$el = $(el);
   this.id = el.id;
   this.iterator = this.frameIterator = this.opts.start_frame - 1;
   this.overlayVisible = false;
   this.playing = false;
   this.scrolling = false;
   this.isMouseDown = false;
   this.mouse = { x: 0, y: 0 };
   this.filmstripOrientation = (this.opts.filmstrip_position === 'top' || this.opts.filmstrip_position === 'bottom') ? 'horizontal' : 'vertical';
   
   current_scene = (self.opts.start_frame - 1);
   $(document).bind('mousemove.galleryview',function(e) {
    self.mouse = {x: e.pageX, y: e.pageY};   
   });
   
   // create all necessary DOM elements
   $.each(this.elems,function(i,elem) {
    var elem = elem.split('.');
    
    // if there is no tag name, assume <div>
    if(elem[0] === '') { elem[0] = 'div'; }
    
    // add jQuery element to dom object
    dom[elem[1]] = self.createElem({'class':elem[1]},elem[0]);
   });
   
   dom.gv_imageStore.appendTo($('body'));
   
   dom.gv_galleryWrap.delegate('img','mousedown.galleryview',function(e){ if(e.preventDefault) { e.preventDefault(); } });
   
   dom.gv_panel.addClass('gv_panel-loading');
   dom.gv_frame.addClass('gv_frame-loading');
    
   // nest DOM elements
   dom.gv_galleryWrap.hide().append(dom.gv_gallery);
   
   if(this.opts.show_panels) {
    dom.gv_gallery.append(dom.gv_panelWrap);
    if(this.opts.show_panel_nav) {
     dom.gv_panelWrap.append(dom.gv_panelNavNext,dom.gv_panelNavPrev);
    }
    if(this.opts.show_infobar) {
     dom.gv_panelWrap.append(dom.gv_infobar);
    }
   }
   
   if(this.opts.show_filmstrip) {
    dom.gv_gallery.append(
     dom.gv_filmstripWrap.append(
      dom.gv_filmstrip
     )
    );
    
    if(this.opts.show_filmstrip_nav) {
     dom.gv_gallery.append(
      dom.gv_navWrap.append(
       dom.gv_navPrev,
       (this.opts.enable_slideshow?dom.gv_navPlay:$('<span></span>')),
       dom.gv_navNext
      )
     );
    }
   }
   
   if(this.opts.enable_overlays) {
    dom.gv_panelWrap.append(dom.gv_overlay,dom.gv_showOverlay); 
   }
   
   if(this.opts.show_captions) {
    dom.gv_frame.append(dom.gv_caption).appendTo(dom.gv_gallery); 
   }
   
   //swap out source element with gallery
   this.$el.replaceWith(dom.gv_galleryWrap);
   
   if(this.opts.pan_images) {
    this.enablePanning();
   }
   
   // 링크 실행
   try
   {
    dom.gv_panelWrap.delegate('.gv_panel img','mousedown.galleryview',function(e) {   
     _act_link(current_scene);
    })    
   }
   catch (e)
   {
    // ERROR!
   }
   // convert source images into gvImage objects
   this.storeImages();
   
   // block out dimensions/positions of gallery elements
   this.buildGallery();
   
   // begin loading images into gallery
   this.initImages();
   
   // set up transitions, buttons
   this.bindActions();
   
   // remove temporary frame element
   dom.gv_frame.remove();
   
   // show gallery
   dom.gv_galleryWrap.show();
   
   if(this.opts.autoplay) {
    this.startSlideshow(true);
   }
   
   this.updateOverlay(this.iterator);
   this.updateFilmstrip(this.frameIterator);
  }
  
 }; // END GalleryView
 
 /*
  MAIN PLUGIN CODE
 */
 $.fn.galleryView = function (options) {
  if (this.length) {
   return this.each(function () {
    var gallery = Object.create(GalleryView);
    gallery.init(options,this);
   });
  }
 };
 
 /*
  Default Options
   Object literal storing default plugin options
 */
 $.fn.galleryView.defaults = {
 
  // General Options
  transition_speed: 1000,   //INT - duration of panel/frame transition (in milliseconds)
  transition_interval: 5000,   //INT - delay between panel/frame transitions (in milliseconds)
  easing: 'swing',     //STRING - easing method to use for animations (jQuery provides 'swing' or 'linear', more available with jQuery UI or Easing plugin)
  
  // Panel Options
  show_panels: true,     //BOOLEAN - flag to show or hide panel portion of gallery
  show_panel_nav: true,    //BOOLEAN - flag to show or hide panel navigation buttons
  enable_overlays: false,    //BOOLEAN - flag to show or hide panel overlays
  panel_width: 800,     //INT - width of gallery panel (in pixels)
  panel_height: 400,     //INT - height of gallery panel (in pixels)
  panel_animation: 'fade',   //STRING - animation method for panel transitions (crossfade,fade,slide,none)
  panel_scale: 'crop',    //STRING - cropping option for panel images (crop = scale image and fit to aspect ratio determined by panel_width and panel_height, fit = scale image and preserve original aspect ratio)
  overlay_position: 'bottom',  //STRING - position of panel overlay (bottom, top)
  pan_images: false,    //BOOLEAN - flag to allow user to grab/drag oversized images within gallery
  pan_style: 'drag',    //STRING - panning method (drag = user clicks and drags image to pan, track = image automatically pans based on mouse position
  pan_smoothness: 15,    //INT - determines smoothness of tracking pan animation (higher number = smoother)
  
  // Filmstrip Options
  start_frame: 1,     //INT - index of panel/frame to show first when gallery loads
  show_filmstrip: true,    //BOOLEAN - flag to show or hide filmstrip portion of gallery
  show_filmstrip_nav: true,   //BOOLEAN - flag indicating whether to display navigation buttons
  enable_slideshow: true,   //BOOLEAN - flag indicating whether to display slideshow play/pause button
  autoplay: false,    //BOOLEAN - flag to start slideshow on gallery load
  show_captions: false,    //BOOLEAN - flag to show or hide frame captions 
  filmstrip_size: 3,     //INT - number of frames to show in filmstrip-only gallery
  filmstrip_style: 'scroll',   //STRING - type of filmstrip to use (scroll = display one line of frames, scroll filmstrip if necessary, showall = display multiple rows of frames if necessary)
  filmstrip_position: 'bottom',  //STRING - position of filmstrip within gallery (bottom, top, left, right)
  frame_width: 80,     //INT - width of filmstrip frames (in pixels)
  frame_height: 40,     //INT - width of filmstrip frames (in pixels)
  frame_opacity: 0.4,    //FLOAT - transparency of non-active frames (1.0 = opaque, 0.0 = transparent)
  frame_scale: 'crop',    //STRING - cropping option for filmstrip images (same as above)
  frame_gap: 5,      //INT - spacing between frames within filmstrip (in pixels)
  
  // Info Bar Options
  show_infobar: true,    //BOOLEAN - flag to show or hide infobar
  infobar_opacity: 1    //FLOAT - transparency for info bar
 };
})(jQuery);​

 

#demo.php


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>GalleryView - Default Demo</title>
<!-- First, add jQuery (and jQuery UI if using custom easing or animation -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<!-- Second, add the Timer and Easing plugins -->
<script type="text/javascript" src="../js/jquery.timers-1.2.js"></script>
<script type="text/javascript" src="../js/jquery.easing.1.3.js"></script>
<!-- Third, add the GalleryView Javascript and CSS files -->
<script type="text/javascript" src="../js/jquery.galleryview-3.0-dev.js"></script>
<link type="text/css" rel="stylesheet" href="../css/jquery.galleryview-3.0-dev.css" />
<!-- Lastly, call the galleryView() function on your unordered list(s) -->

<?
 $_Img_Url[0] = "http://www.spaceforaname.com/galleryview/img/photos/bp1.jpg";
 $_Img_Link[0] = "http://www.naver.com";
 $_Img_Alt[0] = "Lone Tree Yellowstone";
 $_Img_Url[1] = "http://www.spaceforaname.com/galleryview/img/photos/bp2.jpg";
 $_Img_Link[1] = "http://www.sir.com";
 $_Img_Alt[1] = "Is He Still There?!";
 $_Img_Url[2] = "http://www.spaceforaname.com/galleryview/img/photos/bp4.jpg";
 $_Img_Link[2] = "http://www.daum.net";
 $_Img_Alt[2] = "Noni Nectar For Green Gecko";
 $_Img_Url[3] = "http://www.spaceforaname.com/galleryview/img/photos/bp7.jpg";
 $_Img_Link[3] = "http://www.google.com";
 $_Img_Alt[3] = "Flight of an Eagle Owl";
?>
<script type="text/javascript">
 $(function(){
  $('#myGallery').galleryView();
 
/*
  $(".gv_panelWrap img").bind("click", function(event){
   //alert($(".gv_panelWrap .gv_panel img").attr('src'));
  });*/
 });
 var link = new Array();
 <? for ($i = 0; $i < sizeof($_Img_Url); $i++) { ?>
  link[<?=$i?>] = "<?=$_Img_Link[$i]?>";
 <? } ?>
 
 function _act_link(no)
 {
  //alert(no);
  location.href = link[no];
 }
</script>
</head>
<body>
 <ul id="myGallery">
 <?
  for ($i = 0; $i < sizeof($_Img_Url); $i++)
  {
 ?>
  <li><img src="<?=$_Img_Url[$i]?>" alt="<?=$_Img_Alt[$i]?>"></li>
 <? } ?>
 </ul>
 <p>Please view the source of this page if you are having difficulties setting up GalleryView.</p>
</body>
</html>
​

이런 류는 해당 js파일을 수정해야합니다. 

 

ul 안에 li img 를 불러와서 처리하는데

 

해당 js 파일에 그걸 정리하는곳이 있는데 그걸 수정하면 될거에요.. 

답변을 작성하시기 전에 로그인 해주세요.
전체 64
QA 내용 검색
filter #jsp ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT