Javascript 启动函数后按其ID检索右图像

Javascript 启动函数后按其ID检索右图像,javascript,html,Javascript,Html,我想在点击一些按钮后放大一些切换图像。然而,似乎放大的图像总是第一个。有人能帮我吗 这个问题应该从JS代码的底部开始,请参见附件代码 另外,我想知道是否需要将放大()合并到onclick函数中 谢谢你的耐心, 乔 我已经厌倦了在函数中添加magnize(),但似乎不太管用 function softtissue(){ document.getElementById("img-imgmap201293016112").src="images/Cases/softtissue/32.jpg";

我想在点击一些按钮后放大一些切换图像。然而,似乎放大的图像总是第一个。有人能帮我吗

这个问题应该从JS代码的底部开始,请参见附件代码

另外,我想知道是否需要将放大()合并到onclick函数中

谢谢你的耐心, 乔

我已经厌倦了在函数中添加magnize(),但似乎不太管用

function softtissue(){
  document.getElementById("img-imgmap201293016112").src="images/Cases/softtissue/32.jpg";
}

function bone(){
  document.getElementById("img-imgmap201293016112").src="images/Cases/bone/32.jpg"; 
}

function lung(){
  document.getElementById("img-imgmap201293016112").src="images/Cases/lung/32.jpg";
}

magnify('img-imgmap201293016112',3);
功能放大(imgID,缩放){
var img,玻璃,w,h,bw;
img=document.getElementById(imgID);
/*创建放大镜:*/
glass=document.createElement(“DIV”);
设置属性(“类”、“img放大镜”);
/*插入放大镜:*/
img.parentElement.insertBefore(玻璃,img);
/*设置放大镜的背景属性:*/
glass.style.backgroundImage=“url('“+img.src+”)”;
glass.style.backgroundRepeat=“无重复”;
glass.style.backgroundSize=(img.width*zoom)+“px”+(img.height*zoom)+“px”;
体重=3;
w=玻璃偏移网络宽度/2;
h=玻璃。离光/2;
/*当有人将放大镜移到图像上时,执行以下功能:*/
玻璃。添加显示器(“鼠标移动”,移动放大镜);
img.addEventListener(“mousemove”,移动放大镜);
/*以及触摸屏:*/
玻璃。添加显示器(“触摸移动”,移动放大镜);
img.addEventListener(“触摸移动”,移动放大镜);
功能放大镜(e){
变量pos,x,y;
/*防止在图像上移动时可能发生的任何其他操作*/
e、 预防默认值();
/*获取光标的x和y位置:*/
pos=getCursorPos(e);
x=位置x;
y=位置y;
/*防止放大镜位于图像外部:*/
如果(x>img.width-(w/zoom)){x=img.width-(w/zoom);}
如果(ximg.height-(h/zoom)){y=img.height-(h/zoom);}
如果(y
{框大小:边框框;}
.img放大镜容器{
位置:相对位置;
}
.img放大镜{
可见性:隐藏;
位置:绝对位置;
边框:3倍实心#000;
边界半径:50%;
光标:无;
/*设置放大镜的大小:*/
宽度:100px;
高度:100px;
}






软组织 骨头 肺脏 放大
代码的主要问题是,包含缩放图像的图像是在第一次加载时创建的,之后不会更改

如果在图像中添加
img.onload=function()
,并在基本图像加载后立即更新缩放图像,则会得到一个工作放大镜。您还应该设置
glass.style.visibility=“hidden”
,否则必须单击两次才能显示缩放透镜

以下是需要修改的代码部分:

功能放大(imgID,缩放){
var img,玻璃,w,h,bw;
img=document.getElementById(imgID);
var prevImgs=document.getElementsByClassName(“img放大镜”);
//移除旧透镜。。。
如果(上一个长度>0){
prevImgs[0]。删除();
}
/*创建放大镜:*/
glass=document.createElement(“DIV”);
设置属性(“类”、“img放大镜”);
/*插入放大镜:*/
img.parentElement.insertBefore(玻璃,img);
/*设置放大镜的背景属性:*/
glass.style.backgroundImage=“url('“+img.src+”)”;
console.log(img.src);
glass.style.backgroundRepeat=“无重复”;
glass.style.visibility=“隐藏”;
glass.style.backgroundSize=(img.width*zoom)+“px”+(img.height*zoom)+“px”;
体重=3;
w=玻璃偏移网络宽度/2;
h=玻璃。离光/2;
/*当有人将放大镜移到图像上时,执行以下功能:*/
玻璃。添加显示器(“鼠标移动”,移动放大镜);
img.addEventListener(“mousemove”,移动放大镜);
/*以及触摸屏:*/
玻璃。添加显示器(“触摸移动”,移动放大镜);
img.addEventListener(“触摸移动”,移动放大镜);
...
}
而不是调用
放大(…)一次,在图像加载完成时调用它:

document.getElementById(“img-IMGMAP2012930112”).onload=function(){
M