在将元素附加到DOM之前,有没有办法获得元素的高度?我知道clientHeight不能正常工作,它总是返回0.还有其他方法可以返回高度,或者元素必须是DOM的一部分才能计算高度?
这是我想要的样本:
function test(a) {
var a=document.createElement(a)
a.style.top=(window.innerHeight/2-a.clientHeight/2)+'px' //fixed position in CSS
document.body.appendChild(a)
}
Run Code Online (Sandbox Code Playgroud)
*注意:这只是我正在处理的函数的简化版本,以便在没有所有不必要的混乱的情况下投影我想要实现的功能.
为了什么我要完成,我可以使用createElement()或innerHTML与一个字符串.
到底哪个真的更快?很长一段时间以来,我一直认为字符串比返回相同结果的内置函数慢得多,但这是真的吗?
我问,因为我已经尝试过createElement(),似乎所有必须添加到每个元素的属性都会减慢速度.不仅如此,它也占用了更多的空间.我有一个循环,根据数组的长度从1-infinity到任何地方,但最好在显示减速迹象之前添加多达50个左右的元素.在我想要创建的这50个元素中,大约有10个元素.所以,总的来说,它实际上创造了大约500个元素.
通过创建具有内置函数的元素,我注意到比平时更快的减速,并且由于我无意中重置该数组(数组是5D并且未在同一脚本中设置),我想知道哪个在完成任务之前,无论是速度还是简单的更好的练习,都是真的更好.
如果您还没有从标题中猜到,我正在尝试使用JS将CSS属性语法转换为JS语法.这意味着我想要输入'margin-top'并将其转换为'marginTop'.我知道这可以通过几行和替换功能轻松完成,但我想知道正则表达式是否会有一个更简单,更紧凑的解决方案.
所以,我的问题是我将使用正则表达式替换 - \w没有破折号和大写字母的第一个字母.如果这是不可能的,那么替换功能最简约的解决方案是什么?
谢谢你的帮助.
老实说,我不知道要搜索什么,但我尝试过的方法没有产生任何结果,所以如果已经有人问过,我深表歉意。
这也更像是一个数学问题,而不是一个编程问题,但我是用 JavaScript 做的,它看起来足够合适。
我想做的是数字越高,减少的越多。例如,10 可能会减少到 9 之类,100 可能会减少到 20 之类。我尝试过使用数字本身和除法,但显然这只是返回一个固定数字。我也尝试过简单的除法,但所有它都减少了较低的数字太多,并且相比之下对较高的数字几乎没有影响。是否有任何公式可以使用 JavaScript 的 Math 对象来执行此操作?
对于我想要的某种风格,我想在SVG中勾勒出一组形状.应用于一组,该stroke属性似乎单独勾勒出每个形状 - 有效地在附近的其他形状之上.为了更清楚地解释我的情况:我有一组每个8x8像素的触摸矩形.但是,它们不会形成更大的矩形.
为简单起见,让我们说它们形成了一个十字架.所以我有5个矩形 - 中间有1个,另一个有一个.我想把它们全部勾勒出来,好像它们是1个形状.鉴于这种"交叉"形状发生了变化,我宁愿不使用路径,因为这需要更多的编码.有没有什么方法可以让效果过滤器将这个组识别为单个形状?
如果没有,是否至少可以制作这个组的黑色副本,其宽度和高度正好大2倍,我可以在组后面创建一个纯黑色轮廓?如果是这样,是否可以不重复该组?
感谢您的任何帮助.