简单钢琴-音轨录制功能开发(一) - 左侧键盘位置参考部分
发布于
网上找了一个音频软件的键编辑器的图,作为这次的的录制的编辑器的参考图。
分析,需要左右两个模块,左边是一排垂直的键盘,右边则是可以左右滚动的音轨区,右侧的背景也需要处理一下。上方的选区和播放的待这部分基础功能开发完再开发。
上代码上图
先初始化我的页面
<template> <div class="yingui"> <div class="yg-main"> <div class="left"> 234 </div> <div class="right"> 123 </div> </div> </div> </template> <script> export default { data () { return {}; }, }; </script> <style lang="stylus"> .yingui{ >.yg-main{ position relative; >.left { position relative; width 100px; height 600px; background #aaa; padding 0 0 30px 0; } >.right { position absolute; top 0 left 100px; right 0; height 100%; background #d2d2d2; overflow-x hidden; } } } </style>
页面初始化后效果如下
现在来写代码,把左边的键盘加上。考虑到键的dom会比较多,所以我考虑不使用vue进行控制dom,直接在.left的div里边append原生的dom,这样可以让vue在render的时候不用处理这一块,而且这一块是不怎么需要变化的,所以完全满足可以优化的条件。
现在把左边的钢琴键列表填充一下
<template> <div class="yingui"> <div class="yg-main"> <div class="left"> <div ref="keyList" class="left-keylist" /> </div> <div class="right"> </div> </div> </div> </template> <script> import { heiKeyArray } from '../../keyboard.js'; export default { data () { return {}; }, mounted () { let keyDomList = ''; heiKeyArray.forEach((element) => { keyDomList = '<div></div>' + keyDomList; // 白键 if (element > 0) { keyDomList = '<div></div>' + keyDomList; // 黑键 } }); this.$refs.keyList.innerHTML = keyDomList; }, }; </script> <style lang="stylus"> .yingui{ >.yg-main{ position relative; >.left { position relative; width 80px; padding 0 0 30px 0; } >.right { position absolute; top 0 left 80px; right 0; height 100%; background #999; overflow-x hidden; } } .left-keylist { background #333; padding 2px 0; margin 0px 0; >div { height 20px; margin 1px 0; } >.w { background #fff; } >.h { background #666; } } } </style>
效果如下图
左侧的钢琴键位参考已经画出来了
这里为什么黑键和白键一样长,一样宽,主要是为了音轨在上面也等宽。
接下来开发右侧音轨区域的背景部分。
或 匿名发表评论
找到 0 条评论