/* * jQuery Image rolling Plugin * @author ddakker * @date 2012-01-30 * ex)* * * ... ** * * * */ ;(function($) { /** * 상하 이미지 롤링(추후 좌우 추가) * @param viewCount 이미지 보여줄 갯수 * @param delay 이동 주기 * @param duration Effect 지속 시간 * @param btNextId Up,Left 이동 버튼 * @param btPrevId Down,Right 이동 버튼 * @param direction 이동방향 * @param autoRolling 자동 롤링 * @param callbackRollingFun 이미지 롤링 시 호출될 콜백 함수 ex) callbackRollingFun(direction, options.rollingEl, selectedIndex); */ $.fn.rolling = function(viewCount, delay, duration, btNextId, btPrevId, direction, bAutoRolling, callbackMoveFun) { if( this.children().length == 0 ) return; var clickArr = new Array(); var options = {}; var bEffectProgress = false; var autoRollingTimer = null; var clickedProcessTimer = null; options.el = $(this); options.viewCount = viewCount; options.imgCount = options.el.children().length; options.direction = (direction==undefined)?"DOWN":direction; options.delay = delay; options.duration = duration; options.itemWidth = options.el.children().eq(0).width() + Number(options.el.children().eq(0).attr("border"))*2; options.itemHeight = options.el.children().eq(0).height() + Number(options.el.children().eq(0).attr("border"))*2; options.btNextId = btNextId; options.btPrevId = btPrevId; options.autoRolling = (bAutoRolling==undefined)?true:bAutoRolling; options.callbackMoveFun = (callbackMoveFun==undefined)?null:callbackMoveFun;; options.rollingEl = null; options.el.children().each(function(){ if( $(this).attr("onclick") ) $(this).css("cursor", "pointer"); }); this.css("position", "relative"); this.css("overflow", "hidden"); if( options.direction == "UP" || options.direction == "DOWN" ){ this.css("width", options.itemWidth); this.css("height", options.viewCount * options.itemHeight); }else{ this.css("width", options.viewCount * options.itemWidth); this.css("height", options.itemHeight); } options.el.children().wrapAll(''); options.rollingEl = options.el.children("div"); options.rollingEl.css("position", "absolute"); options.rollingEl.attr("align", "left"); options.rollingEl.css("left", "0"); options.rollingEl.css("top", "0"); if( options.direction == "UP" || options.direction == "DOWN" ){ options.rollingEl.css("height", this.height()*2); }else{ options.rollingEl.css("width", this.width()*2); } options.rollingEl.children().each(function(i){ options.rollingEl.children().eq(i).attr("idx", i); }); if( options.imgCount >= viewCount ){ $("#" + btPrevId).bind("click", function(){ if( options.direction == "UP" || options.direction == "DOWN" ) clickArrAdd("UP"); else clickArrAdd("LEFT"); }).css("cursor", "pointer"); $("#" + btNextId).bind("click", function(){ if( options.direction == "UP" || options.direction == "DOWN" ) clickArrAdd("DOWN"); else clickArrAdd("RIGHT"); }).css("cursor", "pointer"); if( options.autoRolling ){ autoRolling(); this.mouseover(function() { stopRolling(); }).mouseout(function(){ autoRolling(); }); } } // 동작 추가 및 호출 function clickArrAdd(direction){ clickArr.push(direction); stopRolling(); clickArrProcess(); } // 동작 처리 호출 function clickArrProcess(){ if( clickedProcessTimer != null ) return; clickedProcessTimer = setInterval(function(){ if( bEffectProgress == false && clickArr.length > 0 ){ move(clickArr.slice(0, 1), true); clickArr = clickArr.slice(1); } }, 100); } function autoRolling(){ if( clickedProcessTimer ){ clearInterval(clickedProcessTimer); clickedProcessTimer = null; } if( clickedProcessTimer != null ) return; autoRollingTimer = setInterval(function(){ if( bEffectProgress == false ){ move(null, false); } }, options.delay); } function stopRolling(){ clearInterval(autoRollingTimer); autoRollingTimer = null; } // 동작 처리 function move(direction, btClicked){ if( direction ) options.direction = direction; var topMoveSize = 0; var leftMoveSize = 0; if( options.direction == "UP" || options.direction == "LEFT" ){ options.rollingEl.append(options.rollingEl.children().eq(0).clone()); if( options.direction == "UP" ){ topMoveSize = "-=" + options.itemHeight + "px";; leftMoveSize = 0; }else{ topMoveSize = 0; leftMoveSize = "-=" + options.itemWidth + "px";; } }else if( options.direction == "DOWN" || options.direction == "RIGHT" ){ options.rollingEl.prepend(options.rollingEl.children().eq(options.rollingEl.children().length-1).clone()); if( options.direction == "DOWN" ){ options.rollingEl.css("top", (options.itemHeight*-1)+"px"); topMoveSize = "+=" + options.itemHeight + "px";; leftMoveSize = 0; }else{ options.rollingEl.css("left", (options.itemWidth*-1)+"px"); topMoveSize = 0; leftMoveSize = "+=" + options.itemWidth + "px";; } } bEffectProgress = true; options.rollingEl.animate({ top: topMoveSize, left: leftMoveSize }, options.duration, function(){ if( options.direction == "UP" || options.direction == "LEFT" ){ options.rollingEl.children().eq(0).remove(); options.rollingEl.css("top", "0px"); options.rollingEl.css("left", "0px"); }else if( options.direction == "DOWN" || options.direction == "RIGHT" ){ options.rollingEl.children().eq(options.rollingEl.children().length-1).remove(); } bEffectProgress = false; if( btClicked == true && clickArr.length == 0 ){ autoRolling(); } // 롤링 후 콜백 함수 호출 if( options.callbackMoveFun != null ) options.callbackMoveFun("" + options.direction, options.rollingEl, Number(options.rollingEl.children().eq(0).attr("idx"))); }); } }; })(jQuery);
html&css&js
- 이미지 롤링(Image rolling) 2012.01.31
- Oracle 10g Client 설치(Windows 7, Orange4 for oracle) 2011.12.27 2
- mysql procedure 2011.11.07
- oracle MERGE 2011.07.14
- create table check in 2011.07.06
- 도메인 다른 경우 IFrame Resize 2011.05.13
- jQuery ui.sortable Arr 예제 2010.12.24
- [CUBRID] CUBRID Driver, JDBC 예제 2010.12.01
- [MS-SQL] Microsoft SQL Server JDBC Driver 2010.11.30
- [ms-sql] mssql while 예제 데이터 꼿어넣기 2010.11.17
이미지 롤링(Image rolling)
2012. 1. 31. 13:22
Oracle 10g Client 설치(Windows 7, Orange4 for oracle)
2011. 12. 27. 10:42
Oracle 10g Client 다운로드 받아 설치 중간에 설치유형으로 "관리자" 를 선택 후 진행한다.
..Disk1\stage\prereq\client\refhost.xml
..Disk1\stage\prereq\client_prereqs\client\refhost.xml
해당 파일을 열어서
<CERTIFIED_SYSTEMS>자식노드로 아래와 같이 추가
..Disk1\install\oraparam.ini 파일을 열어서 아래와 같이 수정
#Windows=5.0,5.1,5.2,6.0,6.1
Ps. Orange 를 사용할 경우 Instant Client 를 이용할 경우 몇가지 문제가 생긴다. 우선 sqlplus 를 받아야 하고 ORACLE_HOME관련 문제도 생긴다.
인터넷상에 해결 방법이 있는것 같기도 하다.
..Disk1\stage\prereq\client\refhost.xml
..Disk1\stage\prereq\client_prereqs\client\refhost.xml
해당 파일을 열어서
<CERTIFIED_SYSTEMS>자식노드로 아래와 같이 추가
<OPERATING_SYSTEM>
<VERSION VALUE="6.1"/>
</OPERATING_SYSTEM> ..Disk1\install\oraparam.ini 파일을 열어서 아래와 같이 수정
#Windows=5.0,5.1,5.2,6.0,6.1
Ps. Orange 를 사용할 경우 Instant Client 를 이용할 경우 몇가지 문제가 생긴다. 우선 sqlplus 를 받아야 하고 ORACLE_HOME관련 문제도 생긴다.
인터넷상에 해결 방법이 있는것 같기도 하다.
mysql procedure
2011. 11. 7. 14:43
DROP PROCEDURE IF EXISTS `test_db`.`usp_test`; CREATE PROCEDURE `test_db`.`usp_test`(in p_b varchar(50)) READS SQL DATA BEGIN select * from test where b = p_b; END
oracle MERGE
2011. 7. 14. 17:15
MERGE INTO SEARCH_DATA SD USING (SELECT COUNT(DATA) AS C FROM SEARCH_DATA WHERE DATA = 'B') S ON (S.C > 0) WHEN MATCHED THEN UPDATE SET SD.CNT = SD.CNT + 1 WHEN NOT MATCHED THEN INSERT VALUES ('B', 1)
create table check in
2011. 7. 6. 13:01
CREATE TABLE ADM_HISTORY ( SEQ NUMBER NOT NULL, USER_ID VARCHAR2(20) NOT NULL, CUD VARCHAR2(1) CHECK( CUD IN('C', 'U', 'D')) NOT NULL, TITLE VARCHAR2(2000) NOT NULL, URL VARCHAR2(500) NULL, REGDATE DATE DEFAULT SYSDATE, PRIMARY KEY ( SEQ ), FOREIGN KEY ( USER_ID ) REFERENCES ADM_USERS ( USER_ID ) );
도메인 다른 경우 IFrame Resize
2011. 5. 13. 15:15
http://www.test.com/a.html
http://www.test.com/autoResize.html
http://www.test2.com/b.html
[참조] http://bluelenz.tistory.com/54
http://www.test.com/autoResize.html
http://www.test2.com/b.html
a
b
[참조] http://bluelenz.tistory.com/54
jQuery ui.sortable Arr 예제
2010. 12. 24. 10:07
[CUBRID] CUBRID Driver, JDBC 예제
2010. 12. 1. 13:01
String jdbcDriver = "cubrid.jdbc.driver.CUBRIDDriver"; String jdbcURL = "jdbc:cubrid:localhost:30000:testdb:dba::"; String jdbcID = "dba"; String jdbcPWD = "pwd"; Class.forName(jdbcDriver); Connection c = DriverManager.getConnection(jdbcURL, jdbcID, jdbcPWD);
[MS-SQL] Microsoft SQL Server JDBC Driver
2010. 11. 30. 14:45
sqljdbc.jar JDBC 3.0 지원
JDK 1.6 일 경우
sqljdbc4.jar JDBC 4.0 지원
[ms-sql] mssql while 예제 데이터 꼿어넣기
2010. 11. 17. 15:20
declare @idx int set @idx = 1 while(1=1) begin if @idx > 1000000 break; insert into test(a,b,d)values(@idx, 'a', 'bbbb'); set @idx = @idx + 1 end