jQuery addClass example
Change class name on click in jQuery
HTML
<div style="height: 2000px">
</div>
<div class="passing">
<div class="passing-box">
<div class="passing-bar">
<div class="passing-txt">
左から右に現れて文字だけ残る<br>CSSアニメーション
</div>
</div>
</div>
</div>
CSS
@-webkit-keyframes passing-bar{
0% {
left: 0;
right: auto;
width: 0;
}
50% {
left: 0;
right: auto;
width: 100%;
}
51% {
left: auto;
right: 0;
width: 100%;
}
100% {
left: auto;
right: 0;
width: 0;
}
}
@keyframes passing-bar{
0% {
left: 0;
width: 0;
}
50% {
left: 0;
width: 100%;
}
51% {
left: 0;
width: 100%;
}
100% {
left: 100%;
width: 0;
}
}
@-webkit-keyframes passing-txt{
0% { opacity: 0; }
50% { opacity: 0; }
100% { opacity: 1; }
}
@keyframes passing-txt{
0% { opacity:0; }
50% { opacity:0; }
100% { opacity:1; }
}
/* css */
.passing .passing-box {
display: block;
text-align: center;
}
.passing .passing-bar {
position: relative;
display: inline-block;
/* 後ほど解説 */
-webkit-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
}
.passing .passing-bar:before {
content: '';
display: inline-block;
width: 0;
height: 100%;
position: absolute;
left: 0;
top: 0;
z-index: 1;
/* 任意の値 */
background: #000;
}
.passing .passing-txt {
opacity: 0;
/* 後ほど解説 */
-webkit-transform: translate3d(0, 0, 0);
-ms-transform: translate3d(0, 0, 0);
transform: translate3d(0, 0, 0);
/* 任意の値 */
font-size: 4.0rem;
font-weight: bold;
line-height: 1.5;
}
.passing.move .passing-bar:before {
-webkit-animation: passing-bar 1s ease 0s 1 normal forwards;
animation: passing-bar 1s ease 0s 1 normal forwards;
}
.passing.move .passing-txt {
-webkit-animation: passing-txt 0s ease .5s 1 normal forwards;
animation:passing-txt 0s ease .5s 1 normal forwards;
}
JavaScript
jQuery(window).scroll(function(){
jQuery(".passing").each(function(){
var imgPos = jQuery(this).offset().top;
var scroll = jQuery(window).scrollTop();
var windowHeight = jQuery(window).height();
if (scroll > imgPos - windowHeight + windowHeight / 4){
jQuery(this).addClass('move');
}
});
});