图片放大方法有很多种,最直接粗暴的莫过于直接一个img标签固定高宽。
今天学习了一种通过控制字体大小来控制图片大小的方法。
点击看效果demo
<a href="#" class="zxx_image_list">
<img class="zxx_image" src="../../pic&wordLineInMiddle/images/img1.jpg" />
</a>
将图片放入a标签中
内层图片样式
.zxx_image_list img.zxx_image{
padding:3px;
border:1px solid #828da1;
background:white;
vertical-align:middle;
position:relative;
}
再给定固定的长宽单位,不过使用em来代替像素。em是一种相对于文本的长度单位
.zxx_image_list{
display:inline-block;
width:1.2em;
margin-top:20px;
text-align:center;
font-size:128px;
vertical-align:middle;
}
这样就可以控制上面a样式的字体大小,来控制图片的大小。
整个demo源码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>jQuery之replace字符串替换实现大小图片切换</title>
<link rel="stylesheet" href="../css/common.css" type="text/css" />
<style type="text/css">
#choose{
padding:0.5em 1.5em;
border-bottom:1px solid #dddddd;
}
.btn{
display:inline-block;
padding:4px 9px;
color:#666666;
text-decoration:none;
}
.btn:hover,.on{
padding:3px 8px;
border:1px solid #73818C;
color:#3E6173;
-moz-border-radius:2px;
-webkit-border-radius:2px;
}
.on,.on:hover{
background:#f4f4f4;
color:#333333;
cursor:default;
}
.v_line{
font-size:1.3em;
vertical-align:top;
margin:0 5px;
}
.zxx_image_list{
display:inline-block;
width:1.2em;
margin-top:20px;
text-align:center;
font-size:128px;
vertical-align:middle;
}
.zxx_image_list img.zxx_image{
padding:3px;
border:1px solid #828da1;
background:white;
vertical-align:middle;
position:relative;
}
.zxx_image_list:hover,.zxx_image_list:hover .zxx_image{border-color:#ff3300;}
</style>
<script type="text/javascript" src="../js/jquery-1.2.6.pack.js"></script>
</head>
<body>
<div class="zxx_out_box">
<div class="zxx_in_box">
<h3 class="zxx_title">jQuery之replace字符串替换实现大小图片切换</h3>
<div id="choose">
<a href="javascript:void(null);" class="btn on" id="small_pic">小图</a>
<span class="v_line">|</span>
<a href="javascript:void(null);" class="btn" id="big_pic">大图</a>
</div>
<div class="zxx_main_con mt20 mb20">
<a href="#" class="zxx_image_list">
<img class="zxx_image" src="../../pic&wordLineInMiddle/images/img1.jpg" />
</a>
<a href="#" class="zxx_image_list">
<img class="zxx_image" src="../../pic&wordLineInMiddle/images/img2.jpg" />
</a>
<a href="#" class="zxx_image_list">
<img class="zxx_image" src="../../pic&wordLineInMiddle/images/img3.jpg" />
</a>
<a href="#" class="zxx_image_list">
<img class="zxx_image" src="../../pic&wordLineInMiddle/images/img4.jpg" />
</a>
<a href="#" class="zxx_image_list">
<img class="zxx_image" src="../../pic&wordLineInMiddle/images/img5.jpg" />
</a>
<a href="#" class="zxx_image_list">
<img class="zxx_image" src="../../pic&wordLineInMiddle/images/img7.jpg" />
</a>
</div>
</div>
</div>
<script type="text/javascript">
$(function(){
//给图片高宽转换为以em单位
$(".zxx_image").each(function(){
var emW=$(this).width()/128+"em";
var emH=$(this).height()/128+"em";
$(this).css("width",emW);
$(this).css("height",emH)
});
function srcChg(a,b){
$(".zxx_image").each(function(){
var new_src=$(this).attr("src").replace(a,b); //字符串替换,更改图片路径
//alert(new_src);
$(this).attr("src",new_src);
});
}
$("#small_pic").click(function(){
if($(this).hasClass("on")) return;
else{
$("#big_pic").removeClass("on");
$(this).addClass("on");
$(".zxx_image_list").css("font-size","128px");
srcChg("s256","s128");
return false; //使单击后IE6下图片正常加载
}
});
$("#big_pic").click(function(){
if($(this).hasClass("on")) return;
else{
$("#small_pic").removeClass("on");
$(this).addClass("on");
$(".zxx_image_list").css("font-size","256px");
srcChg("s128","s256");
return false;
}
});
});
</script>
</body>
</html>
效果图如下:
放大之后