티스토리 뷰
728x90
반응형
count rolling
아래코드는 나름 여기저기서 쓰이는 거 같아서 필받아서 함 코딩 해봤다 크로스 브라우징 및 단위테스트는 안해봤다.
그닥 최적화하기가......
귀찮음.. 까먹을까바 걍 올려놓는다.....
- html
<div class="container"></div>
-style
<style>
body{font-family:Verdana, Arial, Helvetica, sans-serif}
.container{font-weight:bold}
.disitContainer{width:25px;height:48px;overflow:hidden;}
.disitContainer .disit{height:auto}
.disitContainer .disit .txt{display:block;padding:2px 0;font-size:36px}
</style>
-javascript
//jQuery 기반으로 작업했다.
function DisitCal() {
var _container=null;
var _th=0;
this.getContainer=function(){
return _container;
}
this.setContainer=function( cont ){
_container=$( cont );
}
this.getHeight=function(){
return _th;
}
this.setHeight=function(th){
_th=th;
}
}
DisitCal.prototype.init=function( container ){
this.setContainer( container );
var innerText ="<div class='disit'>";
for(var i= 0,len=10;i<len;i++){
innerText+= "<span class='txt'>"+i+"<br/></span>";
}
innerText+="</div>";
this.getContainer().html(innerText);
this.setHeight( $(" .disit .txt").height() );
}
DisitCal.prototype.run=function( value, delayCount ){
var mgt=(this.getHeight()+4)*-1*value;
this.getContainer().children().stop(true, false)
.delay(delayCount).animate( {marginTop:mgt},1000 );
}
var resultDisit=[48950, 145, 234, 23, 5];
window.onload=function(){
function getNumLen(value){
return String(value).length;
}
function numberPos( value ){
var tagetNum=value;
var len=getNumLen( tagetNum );
var container=$(".container");
var innerTxt="";
for( var i=0;i<len;i++){
innerTxt+="<div class='disitContainer'></div>";
}
container.html(innerTxt);
var disitList=$(".disitContainer");
disitList.each( function(i, item){
var disitCal=new DisitCal();
disitCal.init( item );
$(this).css({float:"left"});
var value=parseInt( String(tagetNum).substr(i, 1));
disitCal.run( value, 400*i );
});
}
numberPos( resultDisit[0] );
}
아래는 실행되는 모습이다. 모션이 이미 끝났다면 새로고침 해보면 알 수 있다.
728x90
반응형
'Programming language > javascript' 카테고리의 다른 글
forEach ( javascript 반복문 ) (0) | 2022.06.23 |
---|---|
for of 구문 (0) | 2022.06.22 |
code copy ( ctrl+c, ctrl+v 효과 ) (0) | 2021.01.10 |
디스트럭쳐링이란 (0) | 2021.01.10 |
count motion ( 숫자 랜덤 카운트 ) (0) | 2021.01.10 |
댓글
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- JsDoc
- cordova
- 코도바
- CSS
- Aptana
- svg모션
- svg icon font
- 반복문
- anime.js
- 태그
- Vue3
- svg 폰트
- git
- react-router-dom
- 리프래시토큰
- react
- IntrinsicElements
- Intrinsic
- 자바스크립트
- interceptors
- RefreshToken
- 아이콘 폰트 만들기
- icon font
- 앵귤러
- Angular
- React.StrictMode
- 내장요소
- vue-router
- git checkout -b
- for of 구문
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함