export default defineComponent({
data() {
return {
collapsed: false,
sidebarWidth: 200,
resizing: false,
startX: 0,
startWidth: 200,
moveHandler: null as null | ((event: MouseEvent) => void),
};
},
methods: {
startResize(event: MouseEvent) {
this.resizing = true;
this.startX = event.clientX;
this.startWidth = this.sidebarWidth;
this.moveHandler = this.resize.bind(this);
document.addEventListener('mousemove', this.moveHandler);
document.addEventListener('mouseup', this.stopResize);
},
resize(event: MouseEvent) {
if (this.resizing) {
const deltaX = event.clientX - this.startX;
this.sidebarWidth = Math.max(this.startWidth + deltaX, 100);
}
},
stopResize() {
this.resizing = false;
document.removeEventListener('mousemove', this.moveHandler!);
document.removeEventListener('mouseup', this.stopResize);
this.moveHandler = null;
window.getSelection()?.removeAllRanges();
},
},
});
</script>
相关文章
- 使用原生JS+CSS或HTML5实现简单的进度条和滑动条效果(精问)
- 前端vue可以左右滚动的切换的tabs tabs选项卡 滑动动画效果 自动宽度
- Bootstrap3实现的响应式幻灯滑动效果个人作品集/博客网站模板
- Android滑动菜单特效实现,仿人人客户端侧滑效果,史上最简单的侧滑实现
- Vue2/Vue3实现全局/局部添加防篡改水印的效果。删除元素无效!更改元素属性无效!支持图片、元素、视频等等。
- vue3 实现滑动调整宽度的效果
- 关于android实现app全屏显示的效果,即调整状态栏
- 让CSS3给你的文字加上边框宽度,并实现镂空效果
- CSS实现页面切换时的滑动效果
- 超实用的JavaScript代码段 Item5 --图片滑动效果实现