先上效果图:
ps:为啥要专门上个图呢,主要是不想变成本身讨厌的人🤣。
开始正经讲解一下思路:
主要是用到了,鼠标的移动,鼠标按下和抬起的动做。
遇到的难点,鼠标抬起的动做触发不了,实际上是浏览器错把鼠标抬起的动做识别成了复制,有没有发现你up的时候内容区域字变成选中的状态,只需一行css代码:user-select: none;就能够了。
上代码,用的jquery你们本身安装完以后直接copy:css
draggable (model) { // model你所要触发操做的页面元素 var location1 var location2 console.log('初始值 ', location1, location2) $(model).mousedown(function (e) { location1 = e.clientY console.log('mousedown', location1) $(model).css({ cursor: 'move' }) }).mouseup(function (e) { location2 = e.clientY console.log('元素内mouseup', location2) if (location1 - location2 > 5) { $(model).css({height: '306px', cursor: 'auto'}) } else { $(model).css({height: '46px', cursor: 'auto'}) } }) $(document).mouseup(function (e) { if (location1 - location2 > 5) { $(model).css({height: '306px', cursor: 'auto'}) } else { $(model).css({height: '46px', cursor: 'auto'}) } console.log('整个页面mouseup', e.clientY) }) }
但愿能帮到你,作个快乐的cv工程师😆jquery