2

所以我有这个问题。我是编程新手,请记住这一点。

我正在尝试做的事情:使用 JQUERY 在图像映射中缩放一些值。

我的想法:图像被包裹在一个完整的宽度。这意味着它是 100%。因此,如果我采用该数字,然后采用查看器正在使用的宽度,我可以将 coord 上的值相乘以始终在轨道上。

一些注意事项(#mapa 是我正在使用的图像映射,#content 是我用作 div 将所有内容放在一起的通用容器。515 是图像自然宽度的值。)不工作:

var width = $('#content').width();
var exp = width * 515;
var mul = exp / 100; //I would do all in one line, but I'm always afraid I mess up.

$("area").each(function() {
var pairs = $(this).attr("coords").split(', ');
for (var i=0; i < pairs.length; i++) {
    pairs[i] = pairs[i] * mul;
    }
$(this).html('coords', pairs.join);
});

那么......有什么建议/建议/插件?提前致谢。

4

2 回答 2

0
$(this).html('coords', pairs.join);

应该

$(this).attr('coords', pairs.join(','));
于 2013-03-29T17:25:34.283 回答
0

你这里有一个可能的问题:

var pairs = $(this).attr("coords").split(', ');

应该_

var pairs = $(this).attr("coords").split(',');

如果逗号后应该有一个没有空格的区域定义。

然后是另一个更严重的:

$(this).html('coords', pairs.join);

应该

$(this).attr('coords', pairs.join(','))

我刚刚使用您的代码作为基础实现了一个“scaleAreas”功能,它运行良好,您的初始工作节省了我的一天。

于 2013-05-22T21:58:49.417 回答