Javascript 给予外部&;内框,确定内框的位置
我正在努力解决一道数学题,需要你的帮助。我想知道以下几点:Javascript 给予外部&;内框,确定内框的位置,javascript,jquery,html,math,Javascript,Jquery,Html,Math,我正在努力解决一道数学题,需要你的帮助。我想知道以下几点: 内盒主要位于左侧还是右侧 内盒主要定位在外盒的顶部还是底部 为了解决这个问题,我知道以下几点: 外盒的高度和宽度,在200px时是静态的 内框的宽度(变量X) 内盒与外盒左侧的距离(var x2) 从顶部到内框的距离(变量y) 有没有办法确定里面的盒子主要是在左边还是右边。。顶部还是底部 谢谢大家! 通过平均内框的左右边缘,可以计算出内框的中心。然后将其与外盒中心进行比较,以确定其主方向 在下面的代码中,我正在呼叫 外盒的高度和
- 内盒主要位于左侧还是右侧
- 内盒主要定位在外盒的顶部还是底部
- 外盒的高度和宽度,在200px时是静态的
- 内框的宽度(变量X)
- 内盒与外盒左侧的距离(var x2)
- 从顶部到内框的距离(变量y)
通过平均内框的左右边缘,可以计算出内框的中心。然后将其与外盒中心进行比较,以确定其主方向 在下面的代码中,我正在呼叫 外盒的高度和宽度,在200px时是静态的
outerH
和outerW
内框的宽度(变量X)
innerW
(我假设您也知道innerBox的高度,我称之为innerH
)
内盒与外盒左侧的距离(var x2)
leftPadding
function isPrimarilyLeft(outerW, innerW, leftPadding) {
var outerCentroidX = outerW / 2;
// center = (leftedge + right edge) / 2
// leftedge = leftPadding
// rightedge = leftpadding + innerWidth
// center = (leftPadding + leftPadding + width) / 2
// = 2*leftPadding / 2 + width / 2 =
var innerCentroidX = leftPadding + innerW / 2;
return innerCentroidX < outerCentroidX;
}
function isPrimarilyTop(outerH, innerH, topPadding) {
var outerCentroidY = outerH / 2;
var innerCentroidY = topPadding + innerH / 2;
return innerCentroidY < outerCentroidY;
}
从顶部到内框的距离(变量y)
top添加
function isPrimarilyLeft(outerW, innerW, leftPadding) {
var outerCentroidX = outerW / 2;
// center = (leftedge + right edge) / 2
// leftedge = leftPadding
// rightedge = leftpadding + innerWidth
// center = (leftPadding + leftPadding + width) / 2
// = 2*leftPadding / 2 + width / 2 =
var innerCentroidX = leftPadding + innerW / 2;
return innerCentroidX < outerCentroidX;
}
function isPrimarilyTop(outerH, innerH, topPadding) {
var outerCentroidY = outerH / 2;
var innerCentroidY = topPadding + innerH / 2;
return innerCentroidY < outerCentroidY;
}
函数isprimarylleft(outerW、innerW、leftPadding){
var outerCentroidX=outerW/2;
//中心=(左边缘+右边缘)/2
//leftedge=leftPadding
//rightedge=leftpadding+innerWidth
//中心=(左填充+左填充+宽度)/2
//=2*leftPadding/2+宽度/2=
var innerCentroidX=左填充+innerW/2;
返回内部质心x<外部质心x;
}
函数isPrimaryTop(outerH、innerH、topPadding){
var-outerCentroidY=outerH/2;
var innerCentroidY=topPadding+innerH/2;
返回内质心<外质心;
}
该框主要位于左侧:X<(200-x2)/2
该框主要位于右侧:X>(200-x2)/2
该框主要位于顶部:Y<(200-Y)/2 (我想你可以计算盒子的高度-Y)
该框主要位于底部:Y>(200-Y)/2
您应该用宽度/高度常数替换200。我将解释一个可能解决方案的基本思想过程 要计算它是否为“左”,您需要确定哪个距离更大,即内部长方体左侧到外部边缘或右侧之间的距离 你已经知道左边的距离了。要计算右侧的距离,需要取总外径,减去内框的宽度和与左侧的距离:
|-------------------------Outer Box----------------------------------|
|---left distance---|---------inner box--------|---right distance----|
如果左距离大于右距离,则为“右”,如果它们相等,则为居中,如果小于,则为“左”
自上而下也是一样。你不知道内盒的高度吗?是的,我知道!。。我们称之为xy?在这个例子中,什么是outerW,innerW,leftPadding?尝试了第一个w isprimarylleft,它总是返回true。应该返回false的值是:(200121.5,54.5)@napprentice,经过编辑以明确参数名称如何与您知道的内容相对应。@napprentice,如果您的内部框的宽度为121.5,并且从54.5像素开始,它的中心位于外盒中心的右侧115.25,因此它的大部分区域位于外盒中心线的右侧。在中,
isprimarylleft(200121.514.5)
生成false。falsewow哇,这就是PrimariLylft。非常感谢你。真的,我不能