Javascript 函数不返回响应,也不返回错误
您好,我正在使用这段代码根据鼠标的位置修改对象的位置Javascript 函数不返回响应,也不返回错误,javascript,css,Javascript,Css,您好,我正在使用这段代码根据鼠标的位置修改对象的位置 function layerCss(parallax, px, offset, size, position, pointer) { var pos = [], cssPosition, cssMargin, x = 2, css = {}; while (x--) { if (parallax[x]) { pos
function layerCss(parallax, px, offset, size, position, pointer) {
var pos = [],
cssPosition,
cssMargin,
x = 2,
css = {};
while (x--) {
if (parallax[x]) {
pos[x] = parallax[x] * pointer[x] + offset[x];
// We're working in pixels
if (px[x]) {
cssPosition = position[x];
cssMargin = pos[x] * -1;
}
// We're working by ratio
else {
cssPosition = pos[x] * 100 + '%';
cssMargin = pos[x] * size[x] * -1;
}
// Fill in css object
if (x === 0) {
css.left = cssPosition;
css.marginLeft = cssMargin;
}
else {
css.top = cssPosition;
css.marginTop = cssMargin;
}
}
}
return css;
}
现在我想尝试使用transform:translate(x,y)来修改对象的位置,而不是left,top
css。Position返回2个值,但函数不再工作
function layerCss(parallax, px, offset, size, position, pointer) {
var pos = [],
cssPosition,
cssMargin,
x = 2,
css = {};
while (x--) {
if (parallax[x]) {
pos[x] = parallax[x] * pointer[x] + offset[x];
// We're working in pixels
if (px[x]) {
cssPosition = position[x];
cssMargin = pos[x] * -1;
}
// We're working by ratio
else {
cssPosition = pos[x] * 100;
cssMargin = pos[x] * size[x] * -1;
}
// Fill in css object
css.transform = 'translate(' + cssPosition[0] + 'px,' + cssPosition[1] + 'px)';
}
}
return css;
}
两个小时后我一直在想办法,但似乎什么都没用。
希望你能帮助我
谢谢你的帮助
cssPosition=pos[x]*100
永远不会返回数组,但在构建转换规则时,您正在访问前两个索引
'translate(' + cssPosition[0] + 'px,' + cssPosition[1] + 'px)'
cssPosition=position[x]的情况似乎相同代码>,但这个函数实际上可以工作,这取决于传递给函数的内容
将新的cssPosition
设置为一个具有两个维度的数组,您的代码将正常工作。i删除像素和比率部分,并添加cssPosition=pos[x];和警报(cssposposition);现在,只要我不移动鼠标,我就会收到两个不同数字的无限警报,但转换仍然不起作用,而且是pos[x]
数组?当我尝试alert pos[x]时,我也会收到两个不同数字的无限警报,只要我不移动鼠标,这就是我一直在告诉你的。阅读我的答案,你需要把它变成一个数组。对不起,我对Javascript非常陌生。如何将其转换为数组,并在移动鼠标时仍会更新?