티스토리 뷰
준비물
- prototype.js
- scriptaculous.js
- slideshow.js (제일 아래 소스 있음)
사용예제 1)
HTML:
설명 1설명 2설명 3설명 4
Javascript:
document.observe('dom:loaded', function(){
oMySlides = new iSlideShow({
autostart : true // optional, boolean (default:true)
start : 0, // optional, slides[start] (default:0)
wait : 4000, // optional, milliseconds (default:4s)
slides : [
'image-div-a',
'image-div-b',
'image-div-c',
'image-div-d'
],
counter : 'counter-div-id', // optional...
caption : 'caption-div-id', // optional...
playButton : 'PlayButton', // optional (default:playButton)
pauseButton : 'PauseButton', // optional (default:PauseButton)
});
});
사용예제 2)
HTML:
Javascript:
설명 1 설명 2 설명 3 설명 4 설명 5 설명 6 설명 7
document.observe('dom:loaded', function(){
$('photo').down('ul').hide(); // container 사용시...
oMySlides = new iSlideShow({
autostart : true // optional, boolean (default:true)
start : 0, // optional, slides[start] (default:0)
wait : 4000, // optional, milliseconds (default:4s)
slides : $('photo').down('ul').select('li'),
counter : 'counter-div-id', // optional...
caption : 'caption-div-id', // optional...
container : 'slideshow', // container 에 통째로 변경하여 보여줄때 (CSS와 크기제한에서 자유롭다.)
playButton : 'PlayButton', // optional (default:playButton)
pauseButton : 'PauseButton', // optional (default:PauseButton)
});
});
slideshow.js 소스
/**
* Basic Slideshow App
*
* Plagerised from Tom Doyle by Isotope Communications Ltd, Dec 2008
* http://www.tomdoyletalk.com/2008/10/28/simple-image-gallery-slideshow-with-scriptaculous-and-prototype/
*
* Published [16/12/08]:
* http://www.icommunicate.co.uk/articles/all/simple_slide_show_for_prototype_scriptaculous_38/
*
* Patched [07/05/09]:
* container 추가
*
* Changes: Basically made it an object so that you can run multiple instances and so that
* it doesn't get interfered with by other scripts on the page.
*
* Have also added a few things, like "Captions" and the option of changing the
* effects..
*
* To start the slideshow:
* oMySlides.startSlideShow();
*
* To skip forward, back, stop:
* oMySlides.goNext();
* oMySlides.goPrevious();
* oMySlides.stop();
**/
var iSlideShow = new Class.create();
iSlideShow.prototype = {
initialize : function (oArgs){
this.wait = oArgs.wait ? oArgs.wait : 4000;
this.start = oArgs.start ? oArgs.start : 0;
this.duration = oArgs.duration ? oArgs.duration : 0.5;
this.autostart = (typeof(oArgs.autostart)=='undefined') ? true : oArgs.autostart;
this.slides = oArgs.slides;
this.counter = oArgs.counter;
this.caption = oArgs.caption;
this.container = oArgs.container; // 통째로 변경
this.playButton = oArgs.playButton ? oArgs.playButton : 'PlayButton';
this.pauseButton = oArgs.pauseButton ? oArgs.pauseButton : 'PauseButton';
this.iImageId = this.start;
if ( this.slides ) {
this.numOfImages = this.slides.length;
if ( !this.numOfImages ) {
alert('No slides?');
}
this.textIn = '1 / ' + this.numOfImages;
this.updatecounter();
if(this.container) this.swapImage(0,0);
}
if ( this.autostart ) {
this.startSlideShow();
}
},
// The Fade Function
swapImage: function (x,y) {
if(this.container) {
$(this.container).update($(this.slides[x]).innerHTML).appear({ duration: this.duration, from:0.0, to:1.0 });
} else {
$(this.slides[x]) && $(this.slides[x]).appear({ duration: this.duration });
$(this.slides[y]) && $(this.slides[y]).fade({ duration: this.duration });
}
},
play: function () {
var imageShow, imageHide;
imageShow = this.iImageId+1;
imageHide = this.iImageId;
if (imageShow == this.numOfImages) {
this.swapImage(0,imageHide);
this.iImageId = 0;
} else {
this.swapImage(imageShow,imageHide);
this.iImageId++;
}
this.textIn = this.iImageId+1 + ' / ' + this.numOfImages;
this.updatecounter();
},
stop: function() {
clearInterval(this.play);
$(this.playButton) && $(this.playButton).appear({ duration: 0 });
$(this.pauseButton) && $(this.pauseButton).hide();
},
goNext: function () {
clearInterval(this.play);
$(this.playButton) && $(this.playButton).appear({ duration: 0 });
$(this.pauseButton) && $(this.pauseButton).hide();
var imageShow, imageHide;
imageShow = this.iImageId+1;
imageHide = this.iImageId;
if (imageShow == this.numOfImages) {
this.swapImage(0,imageHide);
this.iImageId = 0;
} else {
this.swapImage(imageShow,imageHide);
this.iImageId++;
}
this.updatecounter();
},
goPrevious: function () {
clearInterval(this.play);
$(this.playButton) && $(this.playButton).appear({ duration: 0 });
$(this.pauseButton) && $(this.pauseButton).hide();
var imageShow, imageHide;
imageShow = this.iImageId-1;
imageHide = this.iImageId;
if (this.iImageId == 0) {
this.swapImage(this.numOfImages-1,imageHide);
this.iImageId = this.numOfImages-1;
//alert(NumOfImages-1 + ' and ' + imageHide + ' i=' + i)
} else {
this.swapImage(imageShow,imageHide);
this.iImageId--;
//alert(imageShow + ' and ' + imageHide)
}
this.updatecounter();
},
updatecounter: function () {
var textIn = this.iImageId+1 + ' / ' + this.numOfImages;
$(this.counter) && ( $(this.counter).update(textIn) );
if ( !$(this.container) && $(this.caption) && ( oNewCaption = $(this.slides[this.iImageId]).down('.image-caption') ) ) {
$(this.caption).update(oNewCaption.innerHTML);
}
},
// the onload event handler that starts the fading.
startSlideShow: function () {
this.play = setInterval(this.play.bind(this),this.wait);
$(this.playButton) && $(this.playButton).hide();
$(this.pauseButton) && $(this.pauseButton).appear({ duration: 0 });
this.updatecounter();
}
}
'웹프로그래밍 > js' 카테고리의 다른 글
| 모든 자바스크립트 오류를 디버그 콘솔에 던지기 (0) | 2009.06.01 |
|---|---|
| Shadowbox.js (0) | 2009.05.07 |
| Floatbox (최고의 javascript windowing system) (0) | 2009.04.30 |
| The Lightbox Clones Matrix (0) | 2009.04.30 |
| Ferdinand.Slider (0) | 2009.04.23 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- JQuery
- iphone
- sencha touch
- nodejs
- Docker
- 한글
- Linux
- Android
- Prototype
- PHP
- Wordpress
- Debug
- 안드로이드
- IE
- CSS
- ASP
- nginx
- iis
- mssql
- classic asp
- Mac
- git
- API
- laravel
- javascript
- JSON
- macos
- centos
- IOS
- 워드프레스
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
글 보관함


.gif)



.jpg)