- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个框,一旦我们将鼠标悬停在框上,就会出现一个工具提示,当我进入工具提示内部时,工具提示保持打开状态。
对于左侧的方框,工具提示将向其右侧打开。
对于右侧的方框,工具提示将向其左侧打开。
此方案适用于左侧框,但不适用于右侧框。
else if (e.type === 'mouseleave' && e.clientX < x.right) {
this.modelStyle = {
display: 'none'
};
}
为了处理右侧框的工具提示悬停功能,应该对鼠标离开功能进行哪些更改,以处理与左侧框工具提示相同的行为。
Stackblitz 链接
https://stackblitz.com/edit/angular-obzqsk?file=src/app/app.component.ts
export class AppComponent {
modelStyle: any = {
display: 'none'
};
modelClickedStyle: any = {
display: 'none'
};
modalStyleClikedFlag;
addClickEvent(e) {
let x = e.currentTarget.getBoundingClientRect();
if (e.type === 'click') {
this.modalStyleClikedFlag = true;
this.modelClickedStyle = {
top: 0 + 'px',
left: 0 + 'px',
height: 900 + 'px',
width: 90 + '%',
display: 'block'
};
}
else if (e.type === 'mouseenter') {
this.modalStyleClikedFlag = false;
if(((window.innerWidth || document.documentElement.clientWidth) - x.right) >200 ){
this.modelStyle = {
top: 0 + 'px',
left: x.right + 'px',
height: screen.height + 'px',
width: 65 +'%',
display: 'flex'
};
}else{
this.modelStyle = {
top: 0 + 'px',
right:((window.innerWidth || document.documentElement.clientWidth) x.left) + 'px',
height: screen.height + 'px',
width: 65 +'%',
display: 'flex'
};
}
}
else if (e.type === 'mouseleave' && e.clientX < x.right) {
this.modelStyle = {
display: 'none'
};
}
}
onPopEvent() {
this.modelStyle = {
display: 'none'
};
}
}
html
<div class="box1" (mouseenter)="addClickEvent($event)"
(mouseleave)="addClickEvent($event)" (click)="addClickEvent($event)">
On click
</div>
<div class="box2" (mouseenter)="addClickEvent($event)"
(mouseleave)="addClickEvent($event)" (click)="addClickEvent($event)">
On click
</div>
<fs-modal [ngStyle]="modalStyleClikedFlag ? modelClickedStyle :modelStyle"
(mouseleave)="onPopEvent($event)">
</fs-modal>
最佳答案
添加超时,然后如果用户打算输入框,它将打开
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
active = null;
modelStyle: any = {
display: 'none'
};
modelClickedStyle: any = {
display: 'none'
};
modalStyleClikedFlag;
addClickEvent(e) {
let x = e.currentTarget.getBoundingClientRect();
if (e.type === 'click') {
this.modalStyleClikedFlag = true;
this.modelClickedStyle = {
top: 0 + 'px',
left: 0 + 'px',
height: 900 + 'px',
width: 90 + '%',
display: 'block'
};
}
else if (e.type === 'mouseenter') {
this.modalStyleClikedFlag = false;
if (((window.innerWidth || document.documentElement.clientWidth) - x.right) > 200) {
this.modelStyle = {
top: 0 + 'px',
left: x.right + 'px',
height: screen.height + 'px',
width: 65 + '%',
display: 'flex'
};
} else {
this.modelStyle = {
top: 0 + 'px',
right: ((window.innerWidth || document.documentElement.clientWidth) - x.left) - 200 + 'px',
height: screen.height + 'px',
width: 65 + '%',
display: 'flex'
};
}
}
else if (e.type === 'mouseleave' && e.clientX < x.right) {
if (this.active) {
clearTimeout(this.active);
}
this.active = setTimeout(() => {
this.modelStyle = {
display: 'none'
};
}, 1000)
}
}
onPopEvent(e) {
if (e.type === 'mouseenter') {
if (this.active) {
clearTimeout(this.active);
}
} else if (e.type === 'mouseleave') {
this.modelStyle = {
display: 'none'
};
}
}
}
StackBlitz 供您引用 https://stackblitz.com/edit/angular-yw91du
关于javascript - 保持工具提示元素处于打开状态,直到时间工具提示悬停,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57847262/
我需要在 JavaScript 中的笛卡尔坐标和球坐标之间进行转换。我在论坛上浏览了一下,没有找到我要找的东西。 现在我有这个: this.rho = sqrt((x*x) + (y*y) + (z*
有没有matrix3d可以像这样把矩形变成梯形的?我知道常规的 2d 矩阵变换只能以平行四边形结束,因为您只能有效地倾斜和旋转。 div { width: 300px; height:
关于这个例子(d3.j radial tree node links different sizes),我想知道是否可以在 d3.js 中混合径向树和直线树。 对于我的 jsFiddle 示例:htt
我尽量把标题写得最好,但我不确定如何准确描述这里发生的事情,所以请随时更正。 我想使用 › 直 Angular 引号 (›) 而不是 > 直 Angular 引号 (>),虽然 › 字符比 > 短,但
我正在尝试使用 CSS 创建一个具有圆边的矩形棱柱,如下图所示。 到目前为止,我已经指定了顶部和底部的边界半径。问题是我不知道如何让另一边的左右边缘向内 curl 。因此,拐 Angular 处不应有
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 去年关闭。 社区去年审查了是否重
首先,我刚刚开始学习 HTML 和 CSS。 我想如何使用这段代码: https://codepen.io/martinjkelly/pen/vEOBvL .container { width:
我是一名优秀的程序员,十分优秀!