Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何识别CSS和JS中边框的悬停/点击_Javascript_Html_Css - Fatal编程技术网

Javascript 如何识别CSS和JS中边框的悬停/点击

Javascript 如何识别CSS和JS中边框的悬停/点击,javascript,html,css,Javascript,Html,Css,嗨,我正在开发一种代码笔,它可以在没有Jquery的情况下制作一个可拖动和可调整大小的盒子。我试图实现的是,当您将鼠标悬停/单击div的主体时,您可以将其拖动,并将有“移动”光标 当您在边框上悬停/单击时,可以根据您单击的一侧调整框的大小,并使用“col resize”或“row resize”光标 我真正想知道的是,是否可以使用JS和CSS选择边框,如果可以,如何选择。我不认为在没有任何解决方法的情况下,您可以仅在边框上检测到单击。您可以通过检查鼠标相对于方框的位置来检测边框,正如@ibrah

嗨,我正在开发一种代码笔,它可以在没有Jquery的情况下制作一个可拖动和可调整大小的盒子。我试图实现的是,当您将鼠标悬停/单击div的主体时,您可以将其拖动,并将有“移动”光标

当您在边框上悬停/单击时,可以根据您单击的一侧调整框的大小,并使用“col resize”或“row resize”光标

我真正想知道的是,是否可以使用JS和CSS选择边框,如果可以,如何选择。

我不认为在没有任何解决方法的情况下,您可以仅在边框上检测到单击。您可以通过检查鼠标相对于方框的位置来检测边框,正如@ibrahim mahrir所做的,但我更喜欢使用包装器元素:

取消对CSS值的动态设置

最简单的。手动设置“边框”的宽度。如果永远不会更改“边框”的填充/宽度,请使用

var border=document.getElementById(“border”);
var-bor=4;
border.onclick=函数(e){
如果(e.target!==e.currentTarget)返回;
log(“单击边框”)
}
border.onmouseover=函数(e){
y=e.offsetY;
如果(y=this.offsetHeight-bor)c=“行”
else c=“col”
this.style.cursor=c+“-resize”;
}
#边框{
填充:4px;
背景:蓝色;
框大小:边框框;
}
.盒子{
高度:100px;
宽度:100%;
背景:白色;
游标:默认值;
}

我认为你无法在没有任何解决办法的情况下检测到仅仅在边界上的点击。您可以通过检查鼠标相对于方框的位置来检测边框,正如@ibrahim mahrir所做的,但我更喜欢使用包装器元素:

取消对CSS值的动态设置

最简单的。手动设置“边框”的宽度。如果永远不会更改“边框”的填充/宽度,请使用

var border=document.getElementById(“border”);
var-bor=4;
border.onclick=函数(e){
如果(e.target!==e.currentTarget)返回;
log(“单击边框”)
}
border.onmouseover=函数(e){
y=e.offsetY;
如果(y=this.offsetHeight-bor)c=“行”
else c=“col”
this.style.cursor=c+“-resize”;
}
#边框{
填充:4px;
背景:蓝色;
框大小:边框框;
}
.盒子{
高度:100px;
宽度:100%;
背景:白色;
游标:默认值;
}

创建一个div,并使其在孔div内处于绝对位置,向其添加边框样式,然后提供悬停效果和所需的事件。
设置相对于孔div的位置和相对于边框div的绝对位置必须根据边框宽度将“左”、“右”、“上”、“下”设置为负值,以便使背景色透明

创建一个div,并将其设置为孔div内的绝对位置。将边框样式添加到该div中,然后提供悬停效果和所需的事件。
设置相对于孔div的位置和相对于边框div的绝对位置必须根据边框宽度将“左”、“右”、“上”、“下”设置为负值,以便使背景色透明

这是一个如何确定您悬停的边界的示例(祝您在其他计算中好运):

var div=document.querySelector(“div”);
var delta=10;//悬停边界区域的厚度
div.onmousemove=函数(e){
var rect=div.getBoundingClientRect();
var x=e.clientX-rect.left,//相对于元素的鼠标位置
y=e.clientY-rect.top,//。。。
w=rect.right-rect.left,//元素的宽度
h=rect.bottom-rect.top;//元素的高度
var c=“”;//使用哪个光标
如果(yh-delta)c+=“s”//南
如果(xw-delta)c+=“e”;//东
if(c)//如果我们在边界区域悬停(c不是空的)
div.style.cursor=c+“-resize”;//设置相应的光标
否则//否则
div.style.cursor=“指针”;//设置为指针
}
#div{
背景色:红色;
宽度:100px;
高度:100px;
}



嘘!停在边境地区!角落也一样。
这是一个如何确定您悬停的边界的示例(祝您在其他计算中好运):

var div=document.querySelector(“div”);
var delta=10;//悬停边界区域的厚度
div.onmousemove=函数(e){
var rect=div.getBoundingClientRect();
var x=e.clientX-rect.left,//相对于元素的鼠标位置
y=e.clientY-rect.top,//。。。
w=rect.right-rect.left,//元素的宽度
h=rect.bottom-rect.top;//元素的高度
var c=“”;//使用哪个光标
如果(yh-delta)c+=“s”//南
如果(xw-delta)c+=“e”;//东
if(c)//如果我们在边界区域悬停(c不是空的)
div.style.cursor=c+“-resize”;//设置相应的光标
否则//否则
div.style.cursor=“指针”;//设置为指针
}
#div{
背景色:红色;
宽度:100px;
高度:100px;
}



嘘!停在边境地区!也有角。
您能提供一个到您的代码笔的链接吗?当您以某种方式使元素唯一,然后在jQuery选择中使用它时,您可能需要计算距离边框的距离,或者使用透明div作为边框。@ChrisHappy很抱歉每次我尝试