【发布时间】:2019-02-22 20:27:50
【问题描述】:
所以我试图根据指针的 Y 坐标更改变量的值,但我不知道该怎么做。我试过这个:
var righttext = mousemove.clientY;
switch(righttext){
case //not sure what to put here
}
但我不知道在箱子里放什么。我想做的是有这样的例子:case "top 20% of screen"。我如何确定屏幕的坐标是什么,然后弄清楚如何在 switch 语句中使用它?
我想要影响值的部分只是水平划分的屏幕的五分之一。
编辑:
所以我被链接到另一个帖子,并找到了与我正在寻找的内容类似的答案。我将代码更改为如下所示:
document.addEventListener('mousemove', _.throttle(mouseMoveEventAction, 200));
function mouseMoveEventAction(e) {
changetext(isInsideThreshold(e.clientY));
}
var rpaneltext = "";
function changetext(isActive) {
if (isActive) {
rpaneltext = "awareness";
} else {
rpaneltext = "";
}
}
function isInsideThreshold(cursorY) {
var threshold = .2;
var clientHeight = document.documentElement.clientHeight;
return cursorY > (clientHeight - threshold);
}
项目here:将受到righttext影响的部分是document.querySelector(".r2").textContent = righttext
【问题讨论】:
-
当你说前 20% 时,你是指整个屏幕,包括它是否可滚动,还是只是直接的视口?
-
switch不适合这个任务,case会和给定的值做严格的相等比较,不能逐个像素遍历整个屏幕。 -
@zfrisch 这将是一个不可滚动的目录页面,所以只是直接的视口。
-
不同的部分需要不同的方法。我们在谈论哪些部分(形状、价值等)?定义一些,人们会提出一些解决方案。然后,您可以将解决方案应用于您的特定需求。
标签: javascript html variables pts