用JavaScript做精靈圖


用JavaScript做精靈圖

精靈圖可以不用在給每一個小塊一 一的修改位置。主要原理是找到整張的背景圖與li的下標的數學關系.

在這里插入圖片描述
這是一大張背景圖,這個背景圖的位置其實是有規律的,每兩張之間間隔一個固定長度,這個固定長度剛好等於一個小圖標的長度,我們使用的這個圖間隔44px。

CSS樣式如下圖所示
在這里插入圖片描述
樣式代碼如下:

<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" id="con">
		<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屬性設置背景圖像的起始位置(第一個值代表橫向坐標值 ,第二個值代表豎向坐標值)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM