2014-12-13 49 views
11

我已經添加CSS動畫到我的html頁面上的各種div元素。但所有的動畫同時播放&我看不到底部的動畫頁面。當我向下滾動頁面時,如何讓它們播放?CSS3動畫元素,如果在視口中可見(頁面滾動)

+1

使用JS,並且如果一個元素在Viewport *中,而不是向所有元素添加一個類。該類應該觸發CSS3動畫。 – 2014-12-13 18:41:13

回答

19

你需要使用JSjQuery的觸發CSS3過渡 /動畫
一旦元素是視**。

jsFiddle demo - Using inViewport plugin

loadresizescroll事件得到如果一個元素進入視窗
可以使用小的jQuery插件我已經建立: (https://stackoverflow.com/a/26831113/383904

比方說,你有一個動畫盒子,像是:

<div class="box rotate"></div> 
<div class="box scale"></div> 
<div class="box translate"></div> 

比你的CSS您有:

.box{ 
    width:300px; 
    height:300px; 
    margin:500px 50px; 
    background:red; 
    transition: 1.5s; /* THE DURATION */ 
} 

.rotate.triggeredCSS3 {transform : rotate(360deg); } 
.scale.triggeredCSS3  {transform : scale(1.6); } 
.translate.triggeredCSS3 {transform : translate3d(400px,0,0); } 

其中.triggeredCSS3將由插件動態分配:

$(".box").inViewport(function(px){ 
    if(px) $(this).addClass("triggeredCSS3") ; 
}); 
+0

對不起,我用上面的插件創建了一個.js文件 - >將它添加到我的index.html - >通過將.triggeredCSS3添加到.example_animations - >編輯我的.css文件 - >但是現在沒有任何動畫工作了! @Roko C. Buljan – Ajith 2014-12-13 19:17:44

+0

@Ajith你在頁面的頭部添加了** jQuery插件**嗎? – 2014-12-13 19:20:10

+1

是的,我包括插件 – Ajith 2014-12-13 19:21:17