我寫了這個函數來重新調整元素在onLoad的位置,並且用戶應該調整他們的瀏覽器窗口。它在onLoad上正常工作,但在窗口大小調整時不能正確重新計算。我究竟做錯了什麼?jquery image-map resizing
var orig_width = jQuery("#imageMaps").attr("width");
function sizing() {
var pic = jQuery('#imageMaps');
var curr_width = pic.width();
if (orig_width > curr_width) {
var width_ratio = orig_width/curr_width;
}
else if (orig_width < curr_width) {
var width_ratio = curr_width/orig_width;
}
var width_ratio_dec = parseFloat(width_ratio).toFixed(2); alert(width_ratio_dec);
jQuery("area").each(function() {
var pairs = jQuery(this).attr("coords").split(', ');
for(var i=0; i<pairs.length; i++) {
var nums = pairs[i].split(',');
for(var j=0; j<nums.length; j++) {
if (orig_width > curr_width) {
nums[j] = nums[j]/width_ratio_dec;
}
else if (orig_width < curr_width) {
nums[j] = nums[j] * width_ratio_dec;
}
else if (orig_width == curr_width) {
nums[j]
}
}
pairs[i] = nums.join(',');
}
jQuery(this).attr("coords", pairs.join(', '));
});
}
jQuery(document).ready(sizing);
jQuery(window).resize(sizing);
這是HTML:
<img class="alignnone size-full wp-image-430" id="imageMaps" src="SItePlan.gif" width="1500" height="1230" alt="Toledo Beach Marina Map" usemap="#flushometer" border="0" />
<map name="flushometer" id="flushometer">
<area shape="circle" coords="515,313,11" href="#" alt="" />
<area shape="circle" coords="910,115,11" href="#" alt="" />
<area shape="circle" coords="948,130,11" href="#" alt="" />
<area shape="circle" coords="1013,126,11" href="#" alt="" />
<area shape="circle" coords="928,375,11" href="#" alt="" />
<area shape="circle" coords="1252,339,11" href="#" alt="" />
<area shape="circle" coords="434,638,11" href="#" alt="" />
<area shape="circle" coords="761,684,11" href="#" alt="" />
<area shape="circle" coords="462,744,11" href="#" alt="" />
<area shape="circle" coords="361,790,11" href="#" alt="" />
<area shape="circle" coords="341,802,11" href="#" alt="" />
<area shape="circle" coords="310,827,11" href="#" alt="" />
<area shape="circle" coords="721,774,11" href="#" alt="" />
<area shape="circle" coords="835,799,11" href="#" alt="" />
<area shape="circle" coords="784,813,11" href="#" alt="" />
<area shape="circle" coords="793,865,11" href="#" alt="" />
<area shape="circle" coords="880,864,11" href="#" alt="" />
<area shape="circle" coords="1033,872,11" href="#" alt="" />
<area shape="circle" coords="444,367,11" href="#" alt="" />
</map>
你明白了什麼,當你'的console.log(curr_width);'只需設置變量(當瀏覽器調整大小)後? – Jasper 2012-02-02 17:53:37