旋转木马特效代码
window.onload = function () {var flag = true;//表示節(jié)流閥是打開的var config = [{"width": 400,"top": 20,"left": 50,"opacity": 0.2,"zIndex": 2},//0
{"width": 600,"top": 70,"left": 0,"opacity": 0.8,"zIndex": 3},//1
{"width": 800,"top": 100,"left": 200,"opacity": 1,"zIndex": 4},//2
{width: 600,top: 70,left: 600,opacity: 0.8,zIndex: 3},//3
{"width": 400,"top": 20,"left": 750,"opacity": 0.2,"zIndex": 2}//4];//其實(shí)就是一個(gè)配置單 規(guī)定了每張圖片的大小位置層級(jí)透明度//找人var wrap = document.getElementById("wrap");var slide = document.getElementById("slide");var ul = slide.children[0];var lis = ul.children;var arrow = document.getElementById("arrow");var arrLeft = document.getElementById("arrLeft");var arrRight = document.getElementById("arrRight");//alert("加載成功");//鼠標(biāo)經(jīng)過盒子 讓箭頭 漸漸地 顯示出來wrap.onmouseover = function () {animate(arrow, {"opacity": 1});};//離開盒子漸漸隱藏wrap.onmouseout = function () {animate(arrow, {"opacity": 0});};function assign() {//讓所有的li 按照配置單 漸漸地 各就各位for (var i = 0; i < lis.length; i++) {//
animate(lis[i], config[i], function () {flag = true;//動(dòng)畫執(zhí)行完成后 讓falg為true 打開節(jié)流閥
});}}assign();//3.點(diǎn)擊箭頭 實(shí)現(xiàn)旋轉(zhuǎn)//點(diǎn)擊右箭頭 讓配置單 把最前的放到最后arrRight.onclick = function () {if (flag) {//如果節(jié)流閥是打開的 才能執(zhí)行動(dòng)畫flag = false;//只要執(zhí)行了 就把節(jié)流閥先關(guān)閉//arr.push(arr.shift());
config.push(config.shift());//然后還要讓每一個(gè)li 根據(jù)新生成的配置單 重新從當(dāng)前位置跑到新的位置
assign();}};arrLeft.onclick = function () {//把最后的元素放到最前//arr.unshift(arr.pop());
config.unshift(config.pop());assign();};//4.節(jié)流閥 點(diǎn)擊箭頭后就不能再點(diǎn)擊了 當(dāng)前動(dòng)畫執(zhí)行完成后 才能再點(diǎn)擊
};//animate.js代碼
function animate(obj, json, fn) {clearInterval(obj.timer);obj.timer = setInterval(function () {var flag = true;for (var k in json) {if (k === "opacity") {var leader = getStyle(obj, k) * 100;var target = json[k] * 100;var step = (target - leader) / 10;step = step > 0 ? Math.ceil(step) : Math.floor(step);leader = leader + step;obj.style[k] = leader / 100;} else if (k === "zIndex") {obj.style.zIndex = json[k];} else {var leader = parseInt(getStyle(obj, k)) || 0;var target = json[k];var step = (target - leader) / 10;step = step > 0 ? Math.ceil(step) : Math.floor(step);leader = leader + step;obj.style[k] = leader + "px";}if (leader != target) {flag = false;}}if (flag) {clearInterval(obj.timer);if (fn) {fn();}}}, 15);
}
function getStyle(obj, attr) {if (window.getComputedStyle) {return window.getComputedStyle(obj, null)[attr];} else {return obj.currentStyle[attr];}
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/lsy0403/p/5892548.html
總結(jié)
- 上一篇: nodejs创建ejs工程
- 下一篇: 图片预加载和懒加载