CSS可以用來制作各種各樣的動態效果,包括可拖動的時間軸。下面的代碼演示了如何使用CSS制作一個簡單的可拖動時間軸。
/* 時間軸容器 */ .timeline { position: relative; height: 50px; width: 1000px; overflow-x: scroll; } /* 時間軸中的事件 */ .event { position: absolute; height: 50px; } /* 時間軸上的時間標記 */ .marker { position: absolute; width: 1px; height: 30px; background-color: #999; } /* 拖動手柄 */ .handle { position: absolute; height: 30px; width: 30px; background-color: #ccc; border-radius: 50%; top: 10px; z-index: 10; } /* 拖動手柄的狀態 */ .handle:active { background-color: #000; } /* 拖動手柄的位置 */ .handle.dragging { cursor: move; }
以上代碼定義了時間軸容器、事件、時間標記和拖動手柄的樣式。要使用該代碼創建可拖動時間軸,需要在HTML中添加時間軸容器、事件、時間標記和拖動手柄,并按照以下步驟進行操作:
1. 將拖動手柄設置為可拖動狀態。
var handle = document.querySelector('.handle'); var dragging = false; handle.addEventListener('mousedown', function(event) { dragging = true; handle.classList.add('dragging'); }); document.addEventListener('mouseup', function(event) { dragging = false; handle.classList.remove('dragging'); });
2. 將時間軸滾動到拖動手柄位置。
document.addEventListener('mousemove', function(event) { if (dragging) { var timeline = document.querySelector('.timeline'); var handleLeft = event.clientX - timeline.getBoundingClientRect().left; var handlePercentage = handleLeft / timeline.offsetWidth; timeline.scrollLeft = timeline.scrollWidth * handlePercentage; } });
在以上代碼中,我們使用了鼠標事件來控制拖動手柄的位置。使用當前鼠標位置計算出拖動手柄的百分比位置,并將時間軸滾動到該位置。當用戶松開鼠標時,拖動手柄將停止拖動,并恢復原始狀態。
這就是使用CSS制作可拖動時間軸的方法。通過添加事件和時間標記,可以將該時間軸用于各種不同的場景,例如制作電影時間軸或事件日歷。
上一篇css制作三角
下一篇css制作固定導航條