gpt4 book ai didi

html - 离开 textarea 焦点时按钮未单击

转载 作者:太空狗 更新时间:2023-10-29 15:58:50 29 4
gpt4 key购买 nike

我有一个消息空间,底部的响应字段又好又小。当用户单击时,它会展开。但是,当聚焦时,如果我然后去单击我的按钮,它就会失去焦点 - 正如预期的那样,但按钮没有被触发,我必须再次单击它。我怎样才能最好地解决这个问题?

.wrap {
align-items: center;
display: flex;
justify-content: flex-end;
}

textarea {
height: 40px;
width: 100%;
transition: height .2s ease;
}

textarea:focus {
height: 150px;
}

.fancy-button {
background-color: red;
cursor: pointer;
margin-left: 20px;
height: 30px;
width: 30px;
}
<div class="wrap">
<textarea></textarea>
<div class="fancy-button" onclick="alert('click');">
</div>

最佳答案

我认为问题在于,当您单击时,该按钮不是技术上,而是视觉上。如果您添加一个覆盖所有空间的包装器,您可能会在第一时间捕捉到点击。

当您进行快速转换时,浏览器正在计算并更新按钮的位置;因此您的点击在按钮区域之外。

您可能还会注意到,在此解决方案中,如果您在按钮下方单击,可能会因为同样的原因而不会触发警报。包装器的高度正在迅速降低,点击可能在外面。

.wrap {
display: flex;
}

textarea {
height: 40px;
width: 100%;
transition: height .2s ease;
}

textarea:focus {
height: 150px;
}
.wrap > div {
display: flex;
align-items:center;
}
.fancy-button {
background-color: red;
cursor: pointer;
margin-left: 20px;
height: 30px;
width: 30px;
}
<div class="wrap">
<textarea></textarea>
<div onclick="alert('click');">
<div class="fancy-button" >
</div>
</div>
</div>

如果您只减少过渡时间,您也可以在第一时间捕捉到点击:

.wrap {
display: flex;
align-items: center;
}

textarea {
height: 40px;
width: 100%;
transition: height 2s ease;
}

textarea:focus {
height: 150px;
}

.fancy-button {
background-color: red;
cursor: pointer;
margin-left: 20px;
height: 30px;
width: 30px;
}
<div class="wrap">
<textarea></textarea>
<div onclick="alert('click');" class="fancy-button">
</div>
</div>

您还可以保留持续时间并添加延迟:

.wrap {
display: flex;
align-items: center;
}

textarea {
height: 40px;
width: 100%;
transition: height .2s ease;
transition-delay:0.1s;
}

textarea:focus {
height: 150px;
transition-delay:0s;
}

.fancy-button {
background-color: red;
cursor: pointer;
margin-left: 20px;
height: 30px;
width: 30px;
}
<div class="wrap">
<textarea></textarea>
<div onclick="alert('click');" class="fancy-button">
</div>
</div>

关于html - 离开 textarea 焦点时按钮未单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49939400/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com