精灵图可以不用在给每一个小块一 一的修改位置。主要原理是找到整张的背景图与li的下标的数学关系.

用JavaScript做精灵图
这是一大张背景图,这个背景图的位置其实是有规律的,每两张之间间隔一个固定长度,这个固定长度刚好等于一个小图标的长度,我们使用的这个图间隔44px。

CSS样式如下图所示
用JavaScript做精灵图
样式代码如下:

<style>
		*{
			margin: 0;
			padding: 0;

		}
		body{
			background-color: skyblue;
		}
		.conve{

			width: 290px;
			border:  1px solid #aaa;
			margin: 100px auto;
			overflow: hidden;
			background-color: #fff;
		}
		.conve ul{
			width: 292px;
			list-style: none;
		}
		.conve ul li{
			height: 67px;
			float: left;
			width: 72px;
			border: 1px  solid #aaa;
			margin: -1px 0 0 -1px;
		}
		.conve ul li a{
			display: block;
			width: 72px;
			height: 67px;
			font-size: 12px;
			color: #555;
			text-decoration: none;
			font-family: "微软雅黑";
			text-align: center;
		}
		.conve ul li a:hover{
			color: #f40;
		}
		.conve ul li a i{
			width: 24px;
			height: 24px;
			display: inline-block;
			font-style: normal; 
			margin-top: 11px;
			background: url('img/1.jpg')no-repeat 0 0;
		}
		.conve ul li a span{
			width: 72px;
			display: block;
			padding-top: 8px;
		}
	</style>
</head>
<body>
	<div class="conve" >
		<ul>
			<li><a href="#"><i></i><span>吃饭</span></a></li>
			<li><a href="#"><i></i><span>吃饭</span></a></li>
			<li><a href="#"><i></i><span>吃饭</span></a></li>
			<li><a href="#"><i></i><span>吃饭</span></a></li>
			<li><a href="#"><i></i><span>吃饭</span></a></li>
			<li><a href="#"><i></i><span>吃饭</span></a></li>
			<li><a href="#"><i></i><span>吃饭</span></a></li>
			<li><a href="#"><i></i><span>吃饭</span></a></li>
			<li><a href="#"><i></i><span>吃饭</span></a></li>
			<li><a href="#"><i></i><span>吃饭</span></a></li>
			<li><a href="#"><i></i><span>吃饭</span></a></li>
			<li><a href="#"><i></i><span>吃饭</span></a></li>
		</ul>
		</div>
</body>
</html>

JavaScript部分如下所示:

<script type="text/javascript">
	var icons=document.getElementsByTagName("i");
	for (var i = 0; i < icons.length; i++) {
		icons[i].style.backgroundPosition = "0 -"+ i*44 + "px";
	}
</script>

其中:background-position属性设置背景图像的起始位置(第一个值代表横向坐标值 ,第二个值代表竖向坐标值)

相关文章:

  • 2021-08-16
  • 2021-10-22
  • 2021-11-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-29
猜你喜欢
  • 2021-07-12
  • 2021-07-16
  • 2021-07-04
  • 2022-01-24
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案