javascript - 如何使用 Onclick 将 React 对话框移动到正文顶部
问题描述
当用户点击它时,我有一个share-dialog
想要移动的东西。在我的例子中,我有一个多个对话框,可以填充并希望它id
与此对话框相关联。
我在这里也尝试了一些解决方案,但是在过程中遇到了一些错误,任何帮助/建议我做错了什么。
//对话
<div className="share-request-dialog" onClick={this.onClick(participant.id)}>
<div className="alert-dialog-container">
<---- dialog body --->
</div>
</div>
//到目前为止,这个onClick函数style.top
和其他函数都试过了
onClick = (partId, e) => {
var divClass = '.share-request-dialog'+partId;
// eslint-disable-next-line no-restricted-globals
let Y = scrollY;
debugger
// partId[0].style.top = e.clientY + 'px';
divClass.offset().top = Y + 'px';
console.log("Div is clicked" + partId);
}
/错误
TypeError: divClass.offset is not a function
//基本设计(屏幕可以相互打开多个,因此希望在单击时将每个屏幕移动到屏幕顶部)
解决方案
更新的答案
我注意到您的代码是用 React 编写的,您需要考虑简单地将 CSS 类切换到具有绝对定位的左侧和顶部 0 的类。
或者您可以简单地将 div 样式顶部设置为零,如下所示 - 非反应代码
如果您希望对话框浮动在其他对话框之上 - 只需使用 az-index:<high value>
来确保它们是堆叠顺序中的最顶部。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<style>
.share-request-dialog {
background: blue;
border: 1px solid red;
height: 25px;
top: 300px;
position: absolute;
}
</style>
<title>Static Template</title>
<script>
const getOffset = (partId) => {
// eslint-disable-next-line no-restricted-globals
// partId[0].style.top = e.clientY + 'px';
event.target.style.top = 0 + "px";
console.log("Div is clicked" + partId);
};
</script>
</head>
<body>
<div class="share-request-dialog" onClick="javascript:getOffset(5)">
<div class="alert-dialog-container">
<---- dialog body ---> ss
</div>
</div>
</body>
</html>
推荐阅读
- pygame - 您如何解决:“TypeError:参数 1 必须是 pygame.Surface,而不是 SpriteSheet”?
- java - Python 3.7 在 MAC 上连接到 HSQLDB
- css - 如何将 h2 标签放入段落上方的网格中而不占用整个网格?
- python-3.x - Pycharm 路径问题
- azure - 如何在 docker 容器中运行的 Windows 服务中访问本地机器证书?
- node.js - 迁移时 Knex 池已满
- python - 读取后立即删除A .CSV文件的方法是什么
- javascript - 当我们可以调用 setState({}) 重新渲染页面时,为什么我们需要在组件的预定义状态对象中包含组件状态变量
- regex - 延迟分组后的正则表达式匹配字符
- javascript - 如果使用 Google App Script 在某个日期达到其限制,则更改选项值(时间)