我正在定义一个弹出对话框组件,它允许用户输入一些数据以放置在页面上。最终的结果是当单击屏幕上的按钮时它会出现,并且还可以在页面上拖动。拖动来移动页面周围的组件?
我没有太多的此组件还没有的,这里是它的代码:
//edit-global-names-dialog-box.component.ts
import { Component, OnInit } from '@angular/core';
@Component({
selector: 'edit-global-names-dialog-box',
templateUrl: './edit-global-names-dialog-box.component.html',
styleUrls: ['./edit-global-names-dialog-box.component.css']
})
export class EditGlobalNamesDialogBoxComponent implements OnInit{
constructor() {}
ngOnInit() {
}
}
//edit-global-names-dialog-box.component.html
<div id="dialog-box-container">
<div id="header">
</div>
<div id="content">
</div>
<div id="footer">
</div>
</div>
//edit-global-names-dialog-box.component.css
#dialog-box-container {
height: 12%;
width: 25%;
z-index: 2 !important;
position: absolute;
background-color: lightgrey;
right: 50%;
bottom: 50%;
transform: translate(45%,-50.1%);
-moz-box-shadow: 8px 8px 8px #d9d9d9;
-webkit-box-shadow: 8px 8px 8px #d9d9d9;
box-shadow: 8px 8px 8px #d9d9d9;
}
#header {
border: 0.5px solid dimgrey;
border-bottom: none;
height: 20%;
}
#content {
border: 0.5px solid dimgrey;
border-bottom: none;
height: 50%;
}
#footer {
border: 0.5px solid dimgrey;
height: 26%;
}
你可以看到,它只是在目前的模板,出现在所有其他页面的一个div内容,有一个阴影,并在页面中居中。
想要我现在想要实现的功能是,当用户点击并拖动对话框的header
div时,整个对话框会在页面上移动。
我已经采取了看看以前发布的几个问题: Using JS to move a div around the page Make Div Draggable using CSS这些建议纯JavaScript,或者做事情,我不知道会用角网以及jQuery的方式。
如何让我的组件在页面上拖动?
一个解决方案是使用Javascript抓住onmousemove事件,然后将弹出窗口div设置为鼠标的位置。这既复杂又容易,如果你想让我给你一个例子,可能需要几分钟让我给你。 –
@SimonHyll如果你可以发布一个例子作为答案,那会很棒。 – JavascriptLoser