ããããããã£ããããç´ æµãªã¢ãã¡ã¼ã·ã§ã³ãå®è£ ããããã®ã©ã¤ãã©ãªã®ã¾ã¨ã -ãanimationã
- uto usui
- ï¼ï¼
- animation
- effect
- javascript
- jQuery
åç´ãªã¢ãã¡ã¼ã·ã§ã³ãªãCSSã®@keyframes
ãtransition
ã§å®è£
ã§ãã¾ãããè¤éãªã¢ãã¡ã¼ã·ã§ã³ããµã¯ãã¨ãããã®ãæãã¨ãã«ã¯ã¢ãã¡ã¼ã·ã§ã³ã©ã¤ãã©ãªã使ãã¨ãããããç¥èãçµé¨ããªãã¦ãç°¡åã«å®è£
ã§ããããè¤éãªã¢ãã¡ã¼ã·ã§ã³ãæ§ç¯ãããã¨ãã§ãã¾ããã¾ããã¢ãã¡ã¼ã·ã§ã³ãå®è£
ããéã®åå¼·ãç 究ã«ããªãã®ã§ãç®ãéãã¦ããããã©ã¤ãã©ãªãã¾ã¨ãã¾ãã
ã¢ãã¡ã¼ã·ã§ã³ãå®è£ ããããã®ã©ã¤ãã©ãªã¾ã¨ã (CSS)
Tuesday
0.3ç§ãããã®çæéã§çµäºããããã«ä½ãããè¦ç´ ã®è¡¨ç¤ºï¼é表示ã«ä½¿ãããã·ã³ãã«ãªCSSã¢ãã¡ã¼ã·ã§ã³ã©ã¤ãã©ãªãç¨æãããclass
å±æ§ãä»ä¸ããã ãã§ç°¡åã«ã¢ãã¡ã¼ã·ã§ã³ãå®è£
ã§ãã¾ããã½ã¼ã¹ã¯Lessã§è¨è¿°ããã¦ãã¾ãã
<div class="animated tdDropInLeft">animate_</div>
csshake
ã¬ã¯ã¬ã¯ãã«ãã«éãããCSSã©ã¤ãã©ãªãæ´¾æ楽ããã§ãããã¨ã¦ããããããç¨æããã¦ããclass
å±æ§ãä»ä¸ãã¾ããSCSSã§è¨è¿°ããã¦ãã¦ãã«ã¹ã¿ãã¤ãºç¨ã®mixin
ãç¨æããã¦ãã¾ãã
.my-shake {
@include do-shake('my-shake', 40, 40, 20, 100ms); // name x y r time
}
animate.css
class
å±æ§ãä»ä¸ãã¦æ§ã
ãªã¢ãã¡ã¼ã·ã§ã³ãå®è£
ãã¾ããã¨ã¦ãæåã§äººæ°ã®ããCSSã¢ãã¡ã¼ã·ã§ã³ã©ã¤ãã©ãªã
<div class="animated infinite bounce">animation_</div>
SCSSã§Mixinãç¨æããã¦ãããanimate.scssããããã¾ããå®åã§ã«ã¹ã¿ãã¤ãºã®å¿ è¦ãããã¨ãã¯ãã£ã¡ãå©ç¨ããã¨ãå¿ è¦ãªã¢ãã¡ã¼ã·ã§ã³ã ããå¿ è¦ãªãªãã·ã§ã³ãä¸ãã¦å¼ã³åºããã¨ãã§ããã®ã§èªç±åº¦ãé«ã便å©ã§ãã
animatable
CSSã®ããããã£å¥ã«ã¢ãã¡ã¼ã·ã§ã³ãå®è£ ããä¾ã®ã¾ã¨ãããªãã¸ã§ã¯ããã¯ãªãã¯ããã¨ããããã£ãå¤åããã¦ããå¤ã®å¹ ãè¦ããã¨ãã§ãã¾ãã
motion UI
è±å¯ãªã¢ãã¡ã¼ã·ã§ã³ãSassã§ç¨æããã¦ãã¾ããMixinã§ãããããªæ¡å¼µãã§ããããã«ãªã£ã¦ãã¦ããã¨ãã¨ç¨æããã¦ããã¢ãã¡ã¼ã·ã§ã³ãããã¯ã¹ããããã¢ãã¡ã¼ã·ã§ã³ã«é åºãä¸ãããã¨ãç°¡åã«ã§ãã¾ããJavaScriptã§å¶å¾¡ãããã¨ãã§ããããã«ãªã£ã¦ãã¾ããããã¥ã¡ã³ãã¯ã¡ãã£ã¨é£ããã
Magic Animations CSS3
ã¯ã©ã¹ãä»ä¸ãããã¨ã§ãå¯æãåããå®è£ ã§ãã¾ããã¦ã¼ã¶ã¼ãã¯ãªãã¯ããæãªã©ãUIã®ã¢ã¯ã·ã§ã³ã«åãã¦ãã¾ãã
class
åããªãã ãããããã§ãã
javascript
$('.animate').on('click', function() {
$(this).addClass('magictime puffIn');
});
html
<div class="animte">animate_</div>
ã¢ãã¡ã¼ã·ã§ã³ãå®è£ ããããã®ã©ã¤ãã©ãªã¾ã¨ã ãJavaScriptã
bouncejs
å°ãæ¿ããã§ããªããã¼ãªåããç¨æããã¦ãã¾ãããã¢ãã¼ã¸ã§ã¯ããªã»ãããããã¢ãã¡ã¼ã·ã§ã³ãç´æçã«ã¨ãã£ããï¼ãã¬ãã¥ã¼ãã¦ã«ã¹ã¿ãã¤ãºã§ãã¾ããCSSã®ã³ã¼ããã¨ã¯ã¹ãã¼ãã§ããããã«ãªã£ã¦ãã¦ãåºåãããtransform: matrix3d()
ãå©ç¨ãã @keyframes
ã¢ãã¡ã¼ã·ã§ã³ãã³ãããããã¨ãã§ãã¾ãã
ãã®ã³ã¼ããçæãã¦ããã©ã¤ãã©ãªæ¬ä½ãå©ç¨ãããã¨ãå¯è½ã§ã使ããããã§ãã
javascript
var bounce = new Bounce();
bounce
.translate({
from: { x: -300, y: 0 },
to: { x: 0, y: 0 },
duration: 600,
stiffness: 4
})
.scale({
from: { x: 1, y: 1 },
to: { x: 0.1, y: 2.3 },
easing: "sway",
duration: 800,
delay: 65,
stiffness: 2
})
.scale({
from: { x: 1, y: 1},
to: { x: 5, y: 1 },
easing: "sway",
duration: 300,
delay: 30,
})
.applyTo(document.querySelectorAll('.anim_'));
voxel.css
JavaScriptã§åè§ãç«æ¹ä½ã並ã¹ã¦ã3D空éãCSSã®ããããã£ã§å®ç¾ããã©ã¤ãã©ãªãå æºã®æ¦å¿µãããã®ããããããã¦ã¹ã¤ãã³ããç°¡åã«å®è£ ã§ãã¦ç®±ã®å¢æ¸ãå転ã®ã¤ã³ã¿ã©ã¯ã·ã§ã³ãã¤ãããã¨ãã§ããã
const init = (element) => {
let PI = Math.PI,
scene = new voxelcss.Scene(),
lightSource = new voxelcss.LightSource(300, 300, 300, 750, 0.3, 1),
world = new voxelcss.World(scene),
editor = new voxelcss.Editor(world);
scene.rotate(-PI / 8, PI / 4, 0);
scene.attach(element);
scene.addLightSource(lightSource);
editor.add(new voxelcss.Voxel(0, 0, 0, 100, {
mesh: voxelcss.Meshes.grass
}));
}
init(document.body);
aos
ã¹ã¯ãã¼ã«ãããªã¬ã¼ã«çºçããã¢ãã¡ã¼ã·ã§ã³ãdata-*
å±æ§ã使ã£ã¦ãã©ã¡ã¼ã¿ã渡ãã¾ããè±å¯ãªã¤ã¼ã¸ã³ã°ãç¨æããã¦ãã¾ããã©ããããå¯è¦ç¯å²ã«å
¥ã£ã¦ãã¦ããã©ããããã®æéã§ãã¨ããããã«ç´°ããå
容ãç´æçã«è¨è¿°ã§ããã¨ãããé
åã§ãã
html
<div data-aos="fade-zoom-in" data-aos-offset="200" data-aos-delay="100" data-aos-easing="ease-in-sine" data-aos-duration="600" data-aos-anchor=".selector">
data-aos-anchor
ã«å¤ã渡ãã¨ãèªåã§ã¯ãªãä»ã®è¦ç´ ãããªã¬ã¼ã«ã¢ãã¡ã¼ã·ã§ã³ãçºçããããã¨ãã§ãã¾ãã
åæå¤ã®è¨å®ã¯init()
ã«ãªãã·ã§ã³ã§å¤ã渡ãã¾ããã¬ã¹ãã³ã·ããã¶ã¤ã³ã§ãã¢ãã¤ã«ç«¯æ«ã§æå®ã解é¤ãããã¨ãã¯ãdisable
ã«true
ã渡ãããã«å¼ãè¨è¿°ãã¾ãã
javascript
AOS.init({
offset: 200,
duration: 600,
easing: 'ease-in-sine',
delay: 100,
disable: $(window).height() < 980
});
animsition
ç»é¢é·ç§»ã«ã¢ãã¡ã¼ã·ã§ã³ãä¸ãããã¨ãã§ãã¾ãããªãã·ã§ã³ãã³ã¼ã«ããã¯ãè±å¯ãªã®ã§ãç»é¢é·ç§»ããªãããã«è¡¨ç¾ãã¦ä½æé度ãé«ãããããªãããªè¡¨ç¾ã«åãã¦ãã¾ãã
Morf.js
è±å¯ã«ç¨æãããã¤ã¼ã¸ã³ã°ãæ¢ç´¢ã§ãã¾ãã
javascript
var elem = document.getElementById('elem');
var trans = Morf.transition(elem, {
'-webkit-transform': 'translate3d(300px, 0, 0) rotate(90deg)',
'background-color': '#FF0000'
}, {
duration: '1500ms',
timingFunction: 'bounce',
callback: function (elem) {
// some func
}
});
tweenmax
Googleãæ¨å¥¨ããæå¼·ã®ã¢ã¼ã·ã§ã³ãä½ãããã®ãã¥ã¤ã¼ã³ã©ã¤ãã©ãªã
ä»ã®ã©ã¤ãã©ãªã«æ¯ã¹ã¦ãå®è¡é度ãéããããã©ã¼ãã³ã¹ã«åªãã¦ãã¾ããå¤ãã®ãªãã¸ã§ã¯ããåããããã¨ããªã©webGLãªã©éãåä½ãå®è£ ãããã¨ãã«ç価ãçºæ®ãã¾ããã¢ã¸ã¥ã¼ã«ãå解ãã¦èªã¿è¾¼ããã¨ãå¯è½ãªã®ã§ãå°åãã«ããã¨å®¹éã軽ããããã¨ãã§ãã¾ãã
è¨è¿°ã«ããã¦ã¯ãCSSã®transform
ããããã£ã«ã¢ã¯ã»ã¹ããããã¨ãããç´ æµã§ãã
javascript
TweenMax.to('.animate_', // ã»ã¬ã¯ã¿
1.0, // æé
{
x: 100,
repeat: -1,
ease: Cubic.easeOut
}
);
åè
anime.js
ãanime.jsãã«ã¯ã©ã³ãã é¢æ°ãç¨æããã¦ããããsvg
ã®ãã¹ä¸ã§ã®ã¢ãã¡ã¼ã·ã§ã³ãããªãã¸ã§ã¯ãã®å¤ãå¤åããããã¨ãã§ãã表ç¾åã®é«ãã©ã¤ãã©ãªããªãã·ã§ã³ãã¤ãã³ããè±å¯ã§äººæ°ãããã¾ãã
TweenMaxããã¯ããã©ã¼ãã³ã¹ãå£ãã®ã§ãéãwebGLã®å¦çãªã©ã¯å¾æã§ã¯ããã¾ãããå°ããªã¢ãã¡ã¼ã·ã§ã³ãã¤ã³ã¿ã©ã¯ã·ã§ã³ã«å®è£ ãã¾ãã
elasticity
ã¨ããã¯ãã¿å
·åãã³ã³ããã¼ã«ã§ããããããããã©ã¡ã¼ã¿ãããã¾ãã
javascript
anime({
targets: '.amimation_', // ã»ã¬ã¯ã¿
translateX: '5rem', // ç¾å¨å°åºæºã«ç§»å
scale: [.75, .9], // .75ãã.9ã¸å¤å
delay: function(el, index) { // function(el, i){...}ã§è¤æ°ã®è¦ç´ ã«å¦ç
return index * 80;
},
direction: 'alternate',
loop: true,
elasticity: 800
});
demo
åè
- 軽éã»ç°¡åãªã®ã«ããããããã¢ãã¡ã¼ã·ã§ã³ãä»ããããï¼anime.jsã触ã£ã¦ã¿ã
- CSSã©ã¤ã¯ã§ãã¶ã¤ãã¼ã«åªããï¼anime.jsã¯DOMã¢ãã¡ã¼ã·ã§ã³ã®æ°å®çªã ï¼
- ã¢ãã¡ã¼ã·ã§ã³ã©ã¤ãã©ãªæ±ºå®çã!?anime.jsã§è»½éã»è»½å¿«ã«å®è£ ï¼
velocity.js
jQueryçã¨JavaSCriptçãç¨æããã¦ãã¾ããjavascriptã®requestAnimationFrame
ãå©ç¨ãã¦ã¢ãã¡ã¼ã·ã§ã³ãå®è¡ãã¾ããjQueryã®animate()
é¢æ°ã®ç
©éã«ãªããã¡ãªã¨ããããåããããªè¨è¿°ã§è£å®ãããããªä½¿ãæ¹ãã§ãã¾ãã
javascript
var element = document.querySelector('.animate_');
Velocity(element,
{
translateX: 1000,
width: 200,
}, {
easing: 'easeInSine',
duration: 1000,
loop: true
}
);
åè
turnbox.js
ãããããã®ãç®±åã«ããã¹ã¯ãªããã
ã¢ãã¡ã¼ã·ã§ã³ãä½æããããã®ãã¼ã«
cssanimate
ãã¼ãã¬ã¼ã ãã¿ã¤ã ã©ã¤ã³ã§èª¿æ´ããªããããªãã¸ã§ã¯ãããã©ãã°ãããå¤å½¢ãããããã¦ãããããã£ã®å¤ãç´æçã«è§¦ããªãããã¬ãã¥ã¼ã§ãã¾ãã
waitanimate
CSSã®@keyframes
ãå¾
æ©æéãå«ããã³ã¼ããåãåºãã¸ã§ãã¬ã¼ã¿ã¼ã§ããããªã»ããã«ç´ æµãªã¢ãã¡ã¼ã·ã§ã³ãå®è£
ããã¦ãã¾ããç¨æãããmixin
ãå©ç¨ãã¦ãªãªã¸ãã«ã®ã¢ãã¡ã¼ã·ã§ã³ãä½æããã®ãç°¡åã§ãã
以åã«ç´¹ä»ãã¦ã¾ããã
svgã¢ãã¡ã¼ã·ã§ã³
DrawSVG
Lazy Line Painter
vivus
Walkway
mo.js
ç´ æµããããã¥ã¼ããªã¢ã«
ãããã¾ãã
share
ã¼
tag
ã¼
previous
ã¼URLã«ä»ä¸ããã¯ã¨ãªæåãå©ç¨ãã¦å¦çãä»»æã®è¦ç´ ã¾ã§ã¹ã¯ãã¼ã«ãã¤ã¤ããã®è¦ç´ ã«ä»»æã®ããã¹ãã表示ã -ãjavascriptã
next
ã¼éã³ã§ããæ¬æ°ã§ããããã£ã¨ç¡æã§ç°¡åã«ä½ãããã´ã¸ã§ãã¬ã¼ã¿ã¼ãSquarespace Logoã -ãdesignã