效果圖:
動畫實現的方案是縮減上方div的高度帶動整體上滑,然後用js操作dom將最上方的div移到最下方。
主要css:
.continer
.scroll
.scroll span
.bar
@keyframes close
100 %
}
頁面主要部分:
:
:
js根據時間動態生成dom方法:
var timearray = [9, 5, 9, 5, 13, 2];
// 生成dom結點
function init_dom(date) , "");
var scrolldiv, bardiv, span, i, j;
var columns = ,
col, s_num;
// 計算每一列的值
for (i = 0; i < timearray.length; i++)
// 對小時進行特殊處理
if (i === 4 && parseint(s[0]) >= 2)
if (i === 5)
}columns.push(col);
}for (i = 0; i < columns.length; i++) }};
滾動實現與進製觸發:
// 啟動方法;
function scroll()
dom.addeventlistener("animationend", function(event) )
}, 1000)
};// 觸發器
function ticksec(index)
dom.addeventlistener("animationend", function(event) )
}
由於獲取的時間與系統當前時間仍有1000ms以內的差值,所以還要有用來糾正時間差值的啟動方法:
// 啟動
function start() , pad)
init_dom(new date(date.gettime() + pad));
}
以上就實現了基本的滾動樣式實現;
但值得注意的是,當瀏覽器最小化或者頁面不可見時,定時程式是停止執行的,所以會出現時間與當前時間並不匹配的情況。
這可以通過監聽頁面的顯隱解決,**如下:
// 設定隱藏屬性和改變可見屬性的事件的名稱
var hidden, visibilitychange;
if (typeof document.hidden !== "undefined") else if (typeof document.mshidden !== "undefined") else if (typeof document.webkithidden !== "undefined")
// 處理頁面可見屬性的改變
document.addeventlistener(visibilitychange, function() , false);
JS CSS實現數字滾動
最近在實現乙個顯示rgb顏色數值的動畫效果時,嘗試使用了writing mode 書寫模式 及 text orientation來實現文字的豎直方向的排列,並借助css的transition 過渡 來實現動畫效果。關於書寫模式,參考鏈結 鏈結描述 1 各瀏覽器對writing mode的支援情況,可...
JS CSS 實現 懸浮滾動廣告
布局乙個絕對布局的div 寫乙個move方法改變div的left 和top值 需要注意 到達body邊界時候 改變方向 然後設定定時器呼叫move方法 不斷改變 left和top值 lang en charset utf 8 移動的小廣告title 注意 document.body.clienthe...
webpack樣式處理,以及js,css壓縮
1.在配置中新增module module css loader css loader import 解析路徑 less loader less css 2.將樣式抽離成乙個單獨的檔案 抽離css外掛程式 mini css extract plugin let path require path 自...