vue floating menu
1.0.0
Как следует из названия, это плавающее меню с функцией перетаскивания, проект с открытым исходным кодом.
Компонент плавающего окна, основанный на vue, который можно свободно перетаскивать по экрану. После перетаскивания его можно прикрепить к обеим сторонам страницы в соответствии с конечным положением, и можно щелкнуть плавающее окно для отображения меню.
Прикреплен адрес проекта github vue-floating-menu.
Эффект следующий:
< div @mousedown.stop.prevent =" moveStart " @click.stop.prevent =" toggleMenu " > </ div >
moveStart ( e ) {
// ... ...省略号... ...
// 具体可以在github项目里查看
document . onmousemove = async ( e ) => {
this . clickFlag = false ;
this . moveFlags = true ;
// ?在这里边处理拖拽时的位置更新,就是因为这个。
// 我之前是单独通过监听mousemove的方法,所以遇到了这个问题
} ;
document . onmouseup = ( ) => {
document . onmousemove = null ;
document . onmouseup = null ;
this . moveEnd ( ) ;
} ;
} ,
< div @mousedown.stop.prevent =" moveStart " @click.stop.prevent =" toggleMenu " > </ div >
toggleMenu ( ) {
// 如果上一次down事件到下一次click事件中 相同即为点击事件
if ( this . lastMoveIndex == this . curMoveIndex ) {
//?点击事件
}
this . curMoveIndex = this . lastMoveIndex ;
} ,
moveStart ( e ) {
// ... ...省略号... ...
// 具体可以在github项目里查看
document . onmousemove = async ( e ) => {
this . lastMoveIndex ++ ;
} ;
document . onmouseup = ( ) => {
document . onmousemove = null ;
document . onmouseup = null ;
this . moveEnd ( ) ;
} ;
} ,
Демо-версию смотрите здесь: https://vue-floating-menu.netlify.app
Если вы считаете, что vue-floating-menu хорош, не забудьте поставить ему палец вверх.