脚本之家

电脑版
提示:原网页已由神马搜索转码, 内容由www.jb51.net提供.
您的位置:首页网络编程JavaScriptjavascript类库AngularJS→ Angular6拖拽功能指令drag

Angular6实现拖拽功能指令drag实例详解

  更新时间:2023年11月01日 11:59:47  作者:双木枯荣 
这篇文章主要为大家介绍了Angular6实现拖拽功能指令drag实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

1. 指令代码

import { Directive, ElementRef, OnInit, HostListener } from '@angular/core';
@Directive({
selector: '[appDrag]'
})
export class DragDirective implements OnInit {
constructor(public el: ElementRef) {
}
public isDown = false;
public disX; // 记录鼠标点击事件的位置 X
public disY; // 记录鼠标点击事件的位置 Y
private totalOffsetX = 0; // 记录总偏移量 X轴
private totalOffsetY = 0; // 记录总偏移量 Y轴
// 点击事件
@HostListener('mousedown', ['$event']) onMousedown(event) {
this.isDown = true;
this.disX = event.clientX;
this.disY = event.clientY;
}
// 监听document移动事件事件
@HostListener('document:mousemove', ['$event']) onMousemove(event) {
// 判断该元素是否被点击了。
if (this.isDown) {
this.el.nativeElement.style.left = this.totalOffsetX + event.clientX - this.disX + 'px';
this.el.nativeElement.style.top = this.totalOffsetY + event.clientY - this.disY + 'px';
}
}
// 监听document离开事件
@HostListener('document:mouseup', ['$event']) onMouseup(event) {
// 只用当元素移动过了,离开函数体才会触发。
if (this.isDown) {
console.log('fail');
this.totalOffsetX += event.clientX - this.disX;
this.totalOffsetY += event.clientY - this.disY;
this.isDown = false;
}
}
ngOnInit() {
this.el.nativeElement.style.position = 'relative';
}
}

2.使用

首先将指令在Module中注册,在declarations数组中添加指令。

然后在要拖拽的组件上,添加指令 appDrag ,即可实现拖拽功能。

以上就是Angular6实现拖拽功能指令drag实例详解的详细内容,更多关于Angular6拖拽功能指令drag的资料请关注脚本之家其它相关文章!

相关文章

    • 这篇文章主要介绍了Angular value与ngValue区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
      2019-11-11
    • 这篇文章主要介绍了3个可以改善用户体验的AngularJS指令,AngularJS是一款具有很高人气的JavaScript框架,需要的朋友可以参考下
      2015-06-06
    • 本篇文章主要介绍了angularjs ui-router中路由的二级嵌套,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
      2017-03-03
    • 这篇文章主要介绍了angular2模块和共享模块详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
      2018-04-04
    • 这篇文章主要介绍了AngularJS 应用模块化的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
      2018-04-04
    • 本篇文章主要介绍了Angular实现双向折叠列表组件的示例代码,分为左右两组,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
      2017-11-11
    • 本篇文章主要介绍了浅谈angular4 ng-content 中隐藏的内容,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
      2017-08-08
    • 这篇文章主要给大家介绍了关于利用require.js与angular搭建spa应用的方法实例,文中通过示例代码给大家介绍的非常详细,对大家的理解和学习具有一定的参考学习价值,需要的朋友们下面跟着小编来一起看看吧。
      2017-07-07
    • 本篇文章主要介绍了用AngularJS来实现监察表单按钮的禁用效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
      2016-11-11
    • 这篇文章主要为大家介绍了Angular应用程序的Hydration基本概念详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
      2023-09-09

    最新评论