产品颜色切换

课后整理 2021-2-25

本节来设计右侧产品颜色切换,与单击左侧产品小图片切换为大图片类似,不过还需要多做几步,即显示当前所选中的颜色和显示相应产品列表,演示效果如图1所示。

图1 产品颜色切换效果

【操作步骤】

第1步,新建JavaScript文档,保存为switchColor.js,然后输入下面代码:

/*衣服颜色切换*/
$(function(){
	$(".color_change ul li img").click(function(){    
		  $(this).addClass("hover").parent().siblings().find("img").removeClass("hover");
		  var imgSrc = $(this).attr("src");
		  var i = imgSrc.lastIndexOf(".");
		  var unit = imgSrc.substring(i);
		  imgSrc = imgSrc.substring(0,i);
		  var imgSrc_small = imgSrc + "_one_small"+ unit;
		  var imgSrc_big = imgSrc + "_one_big"+ unit;
		  $("#bigImg").attr({"src": imgSrc_small });
		  $("#thickImg").attr("href", imgSrc_big);
		  var alt = $(this).attr("alt");
		  $(".color_change strong").text(alt);
		  var newImgSrc = imgSrc.replace("images/pro_img/","");
		  $("#jnProitem .imgList li").hide();
		  $("#jnProitem .imgList").find(".imgList_"+newImgSrc).show();
	});
});

第2步,运行效果后,产品颜色可以正常切换了,演示效果如上图所示。

第3步,但点击会发现一个问题,如果不手动去单击缩略图,那么放大镜效果显示的图片还是原来的图片,解决方法很简单,只要触发获取的元素的单击事件即可。在上面代码尾部添加如下一行代码:

//解决问题:切换颜色后,放大图片还是显示原来的图片。
$("#jnProitem .imgList").find(".imgList_"+newImgSrc).eq(0).find("a").click();