resize的鼠标拉动分栏效果:主要通过resize
设置横向自由拉伸来调整目标元素的宽度
结合多行文本输入框实现效果:
下面是代码:
//css: .stretching-column { overflow: hidden; border: 1px solid gray; width: 600px; height: 300px; line-height: 20px; font-size: 16px; color: orange; } .left { overflow: hidden; float: left; position: relative; height: 100%; } .right { overflow: hidden; padding: 10px; height: 100%; background-color: #f0f0f0; word-break: break-all; } .resize-bar { overflow: scroll; width: 250px; height: 100%; opacity: 0; resize: horizontal; } .resize-bar::-webkit-scrollbar { width: 250px; height: 100%; } .resize-bar:hover, :active .resize-line { border-left: 1px dashed gray; } .resize-line { position: absolute; right: 0; top: 0; bottom: 0; border-left: 1px solid #ccc; border-right: 2px solid #f0f0f0; pointer-events: none; } .resize-text { overflow-x: hidden; position: absolute; left: 0; right: 5px; top: 0; bottom: 0; padding: 10px; word-break: break-all; } .my-textarea { width: 100%; height: 100%; padding: 10px; outline: none; } //html: <div class="stretching-column"> <div class="left"> <div class="resize-bar"></div> <div class="resize-line"></div> <div class="resize-text"> 在远方的时候 又想你到泪流 这矫情的措辞结构 经历过的人会懂 那些不堪言的疼痛 也就是我自作自受 你没有装聋 你真没感动 一个人的时候 偷偷看你的微博 你转播的歌好耳熟 我们坐一起听过 当日嫌它的唱法做作 现在听起来竟然很生动 可能是时光让耳朵变得宽容 如今一个人听歌总是会觉得失落 幻听你在我的耳边轻轻诉说 夜色多温柔 你有多爱我 如今一个人听歌总是会觉得难过 爱已不在这里我却还没走脱 列表里的歌 随过往流动 </div> </div> <div class="right"> <textarea class="my-textarea" autofocus="autofocus" placeholder="说说心里话..."> </textarea> </div> </div> //js: let leftEle = document.querySelector(".resize-text"); let rightEle = document.querySelector(".my-textarea"); rightEle.oninput = function (){ leftEle.innerHTML = rightEle.value; }