일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- #이미지
- php
- 솔루션
- CSS
- #쇼핑몰
- CGIMALL
- #동영상
- #솔루션
- #image
- #웹솔루션
- #cgimall
- happycgi
- jquery
- 해피씨지아이
- #뉴스
- #jQuery
- javascript
- 해피CGI
- 홈페이지제작
- 게시판
- #CSS
- #홈페이지제작
- #해피CGI
- #업종별
- 사이트제작
- 홈페이지
- 쇼핑몰
- #홈페이지
- #happycgi
- 웹솔루션
- Today
- Total
웹솔루션개발 22년 노하우! 해피CGI의 모든것
[해피CGI][cgimall] 검색 애니메이션 본문
[HTML 소스]
link(href='https://fonts.googleapis.com/css?family=Roboto+Condensed:700', rel='stylesheet', type='text/css')
h1 This text will be sliced
[CSS 소스]
[JS소스]
[CSS 소스]
@import "nib"
body
background #0099FF
h1
display block
absolute top 50% left 50%
font-family 'Roboto Condensed'
font-size 50px
color #1A4C80
text-transform uppercase
transform translate(-50%, -50%)
> span
display block
position relative
float left
overflow hidden
white-space nowrap
span
position absolute
[JS소스]
class Slicer {
constructor(element, slices, orientation = 'vertical') {
this.element = element;
this.innerHTML = this.element.innerHTML;
this.element.style.width = window.getComputedStyle(this.element).width;
this.element.style.height = window.getComputedStyle(this.element).height;
this.orientation = orientation;
this.slices = slices;
}
get slices() {
return this._slices;
}
set slices(slices) {
this._slices = slices;
this.slice();
}
slice () {
var sliceSize = 100 / this.slices;
var span = document.createElement('span');
span.appendChild(document.createElement('span'));
span.children[0].innerHTML = this.innerHTML;
if (this.orientation === 'vertical') {
span.style.width = sliceSize + '%';
span.style.height = '100%';
}
else {
span.style.width = '100%';
span.style.height = sliceSize + '%';
}
while (this.element.firstChild) {
this.element.removeChild(this.element.firstChild);
}
this.element.appendChild(span);
var newSpan;
for (var i = 1; i < this.slices; ++i) {
newSpan = span.cloneNode(true);
if (this.orientation === 'vertical') {
newSpan.children[0].style.left = -i * this.slices * sliceSize + '%';
}
else {
newSpan.children[0].style.top = -i * this.slices * sliceSize + '%';
}
this.element.appendChild(newSpan);
}
}
};
var slicer = new Slicer(document.querySelector('h1'), 116);
var gui = new dat.GUI();
gui.add(slicer, 'slices', 10, 500);
var animate = function () {
var tl = new TimelineMax();
tl.staggerFromTo('h1 > span:nth-child(even)', 0.2, {
y: -20,
opacity: 0
}, {
y: 0,
opacity: 1
}, 0.1, 'letter');
tl.staggerFromTo('h1 > span:nth-child(odd)', 0.2, {
y: 20,
opacity: 0
}, {
y: 0,
opacity: 1
}, 0.1, 'letter');
};
var button = {
animate: animate
};
gui.add(button, 'animate');
animate();
'웹프로그램밍 자료실 > HTML 자료' 카테고리의 다른 글
[해피CGI][cgimall] Multi Range input, CSS-only 다중 범위 선택 인풋 디자인 (0) | 2023.10.25 |
---|---|
[해피CGI][cgimall] Modern Button Styles - 45 CSS Only Buttons 버튼 디자인 (0) | 2023.09.20 |
[해피CGI][cgimall] 간단한 TXT 애니메이션 효과 (0) | 2023.09.07 |
[해피CGI][cgimall] 여러 토글 디자인을 사용할 수 있는 MoreToggles.css (0) | 2023.09.06 |
[해피CGI][cgimall] Image Map Generator - image-map.net (0) | 2023.08.25 |
Comments