vue实现多轨道时间线拖拽显示效果代码
代码语言:html
所属分类:拖放
代码描述:vue实现多轨道时间线拖拽显示效果代码,类似于视频剪辑多个轨道裁剪拼筹,每个轨道都可以自定义,还可以新增轨道。
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <link type="text/css" rel="stylesheet" href="//repo.bfw.wiki/bfwrepo/css/normalize.5.0.css"> <style> .column { float: left; display: inline-block; padding: 3px 6px 3px 0; } body { font-family: 'Source Code Pro', monospace; font-size: 11px; color: #c9c9c9; background-color: #3d3d3d; overflow: hidden; -webkit-user-select: none; } button { border: none; font-family: 'Source Code Pro', monospace; text-transform: uppercase; background-color: #393939; color: #ddd; margin: 1px; } button.submit { background-color: #546E7A; } button.delete { background-color: #8c3636; } button:focus { outline: 0; } button:hover { background-color: rgba(20, 20, 20, 0.2); } button:active { background-color: #5d5d5d; } #content { width: 100%; overflow-y: scroll; position: absolute; top: 0; bottom: 0; } .dragscroll { cursor: -webkit-grab; } #switch-header { height: 35px; border-right: solid 1px #707070; top: 0; left: 0; position: absolute; background-color: #545454; z-index: 10; } #switch-header .av-features { float: left; display: inline-block; padding: 3px 6px 3px 0; padding-top: 18px; margin-left: 7px; } #switch-header .icon-ref { vertical-align: bottom; float: left; display: inline-block; padding: 3px 6px 3px 0; width: 13px; height: 13px; } #switches { height: auto; margin-top: 35px; border-right: solid 1px #707070; left: 0%; position: absolute; z-index: 2; box-shadow: -2px 0px 6px black; } #switches .layer-info { height: 20px; border-bottom: solid 1px rgba(0, 0, 0, 0.1); margin: 0; margin-top: -2px; padding-bottom: 2px; font-size: 10px; padding-left: 6px; overflow: hidden; line-height: 20px; } #switches .layer-info.group-selected { background-color: #46575c; } #switches .layer-info button { font-size: 11px; width: 13px; height: 13px; margin: 0; padding: 0; vertical-align: text-bottom; border-radius: 2px; } #switches .layer-info .av-features { float: left; display: inline-block; padding: 3px 6px 3px 0; } #switches .layer-info .index { float: left; display: inline-block; padding: 3px 6px 3px 0; width: 16px; text-align: right; } #switches .layer-info .label-color { float: left; display: inline-block; padding: 3px 6px 3px 0; } #switches .layer-info .layer-name { float: left; display: inline-block; padding: 3px 6px 3px 0; padding-left: 4px; padding: 2px 0; overflow: hidden; } .label-popup { position: absolute; background-color: #494949; width: 10%; z-index: 50; } .label-popup .label-picker { float: left; display: inline-block; padding: 3px 6px 3px 0; height: 18px; } .label-popup button { font-size: 11px; width: 13px; height: 13px; margin: 0; padding: 0; vertical-align: text-bottom; border-radius: 2px; } #timeline-scroll { padding-left: 4px; overflow-x: scroll; height: auto; top: 0; position: absolute; display: inline-block; } #timeline-header { height: 35px; background-color: #444; top: 0%; position: absolute; z-index: 4; width: 100%; } #timeline { height: 100%; } #playhead-handle { width: 20px; height: 20px; opacity: 0.5; margin-left: -10px; margin-top: -35px; position: relative; cursor: col-resize; z-index: 101; } #playhead-icon { width: 20px; height: 20px; border-left: solid 1px #4FC3F7; margin-top: -20px; position: relative; z-index: 100; } #playhead-icon svg { -webkit-transform: translate(-5.5px, -31px); } #playhead { border-left: solid 1px #4FC3F7; background-color: rgba(255, 255, 255, 0.1); box-sizing: border-box; height: 5000px; margin-top: -5000px; position: relative; } #play-region { height: 15px; } #timetick { height: 35px; width: 100%; z-index: 100; position: relative; } #timetick .seconds { height: 35px; border-left: solid 1px #737272; box-sizing: border-box; padding-top: 10px; padding-left: 2px; float: left; } .layer { height: 20px; overflow: hidden; margin-bottom: 1px; } .frame { height: 20px; border-right: dotted 1px rgba(0, 0, 0, 0.6); display: inline-block; box-sizing: border-box; vertical-align: top; border-radius: 2px; border-bottom: 1px solid rgba(0, 0, 0, 0.3); } .frame-selected { border-bottom: 4px solid rgba(255, 255, 255, 0.8); } .frame-button { width: 20px; height: 20px; margin-left: 1px; display: inline-block; vertical-align: top; border-radius: 20px; text-align: center; fill: rgba(255, 255, 255, 0.5); } .layer-disabled { opacity: 0.5; } .dur-handle, .roll-handle { width: 10px; height: 10px; cursor: col-resize; fill: rgba(255, 255, 255, 0.5); z-index: 100; /* opacity: 0; */ } .dur-handle { float: right; cursor: ew-resize; } .dur-handle:first-of-type { margin-top: 10px; } .new-frame { width: 20px; height: 20px; fill: rgba(255, 255, 255, 0.5); z-index: 101; position: relative; padding-top: 5px; box-sizing: border-box; cursor: copy; } #timeline-settings { width: 80px; text-align: cen.........完整代码请登录后点击上方下载按钮下载查看
网友评论0