2015-08-28 105 views
0

我有一個div是得到了忽略一個CSS過渡

transition:1s; 

在滾動,我移動DIV從她的實際位置來計算新的位置,和THX的過渡,它的流暢。但有人要求我說,這個div不能超出實際的視野。

如果我滾動速度非常快,我的div將在短時間內不在視圖中,然後再回來。

我的問題是,有沒有辦法忽略某種過渡? 比如,當我的計算說div會超出視野時,我可以寫出最低的頂部位置讓她留在視野中。

或者唯一的解決方法是刪除過渡(讓我們說的一類

.divTransition{ 
transition:1s; 
} 

當我需要做的,只是後把它放回去?

這裏有一個小提琴,基本上我想紅色立方體始終保持在視圖

這裏有一個小提琴:https://jsfiddle.net/Crocsx/qm1gchtw/

基本上我想要的紅色方塊始終留在視圖和永不熄滅的「屏幕」

THX

+0

你可以使用jQuery嗎? – Akshay

+0

不,我不能和它是不可摸的^^' – Bobby

+0

@Akshay爲什麼jQuery會解決JS不會的任何問題? – Shomz

回答

1

嘗試添加id針對特定div你不想transition並刪除該類

document.getElementById("whatever").classList.remove("divTransition"); 
document.getElementById("whatever").classList.add("divTransition"); 
+0

是的,所以這是唯一真正的選擇? 原因我不知道我認爲刪除一個類並將其全部添加回滾是有點矯枉過正。但如果這是唯一的選擇,我會這樣做^^' – Bobby

0

您可以嘗試解決的問題不同,因爲顯然你最初的想法和新的要求是相互衝突的。

我建議在頁面上製作一個smooth scroll,並將紅色div固定 - 這樣一切都會看起來很平滑,但div始終保持原樣。如果你願意,你仍然可以播放onload動畫。