好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

动态变更背景图位置

1. 模仿 百度  效果

百度 的网站是每当鼠标放在相机图标那个位置的时候,相机就会切换到蓝色:

1.jpg

我们来模仿一下这个 效果 :

  <!DOCTYPE html> 
   < html  >  
	   < head  >  
       <  Meta    charset   =  " UTF-8 "   >  
       < title  >  CSS Sprites   </ title  >  
       < style  >   
	   /* 清除 默 认样式 */ 
       *   {   padding  :   ;   margin  :   ;   } 
      
       /* 这段 代码 是为了居中 显示 ,不是重点,看不懂的话可以无视 */ 
       body   { 
	       height  :  vh ; 
	        dis play  :  flex ; 
	       align-items  :  center ; 
	       justify-content  :  center ; 
	   } 
      
        .sprite    { 
         /* 宽高要设置的和图标一样大或者稍微大一点点 */ 
         width  :  px ; 
         height  :  px ; 

         /* 背景图地址设置为Css Sprite的位置 */ 
         background-image  :   url(http://img.mukewang.com/wiki/5ed9bc1809824eef00180038.jpg)  ; 
        
         /*  禁止 背景图重复 */ 
         background-repeat  :  no-repeat ; 

         /* 令背景图 显示 在正确的位置 */ 
         background-position  :  top ; 
       } 

       /* 当鼠标移入时的样式定义 */ 
        .sprite  :hover    { 
         /* 令背景图 显示 在正确的位置 */ 
         background-position  :  b ott om ; 
       } 
  	    </ style  >  
	   </ head  >  
	   < body  >  
       < div   class   =  " sprite "   >     </ div  >  
     </ body  >  
   </ html  >

运行结果:

1.jpg

可以看到,只要改变一下背景图的位置,就可以切换到另 一个 不同的图标,只要位置控制得当,一张Css Sprite就可以 显示 出各式各样不同的图标,是不是很神奇呢?

2. 更加直观的理解

如果有些同学并没有能够理解的话,我们可以给背景 加上  一个 过渡动画,方便大家理解究竟是如何切换图标的:

  <!DOCTYPE html> 
   < html  >  
	   < head  >  
       <  Meta    charset   =  " UTF-8 "   >  
       < title  >  CSS Sprites   </ title  >  
       < style  >   
	   /* 清除 默 认样式 */ 
       *   {   padding  :   ;   margin  :   ;   } 
      
       /* 这段 代码 是为了居中 显示 ,不是重点,看不懂的话可以无视 */ 
       body   { 
	       height  :  vh ; 
	        dis play  :  flex ; 
	       align-items  :  center ; 
	       justify-content  :  center ; 
	   } 
      
        .sprite    { 
         /* 宽高要设置的和图标一样大或者稍微大一点点 */ 
         width  :  px ; 
         height  :  px ; 

         /* 背景图地址设置为Css Sprite的位置 */ 
         background-image  :   url(http://img.mukewang.com/wiki/5ed9bc1809824eef00180038.jpg)  ; 
        
         /*  禁止 背景图重复 */ 
         background-repeat  :  no-repeat ; 

         /* 令背景图 显示 在正确的位置 */ 
         background-position  :  top ; 
        
         /* 为背景 添加 过渡动画 */ 
         transition  :  background s ; 
       } 

       /* 当鼠标移入时的样式定义 */ 
        .sprite  :hover    { 
         /* 令背景图 显示 在正确的位置 */ 
         background-position  :  b ott om ; 
       } 
  	    </ style  >  
	   </ head  >  
	   < body  >  
       < div   class   =  " sprite "   >     </ div  >  
     </ body  >  
   </ html  >

运行结果:

1.jpg

可以看到其实就是这么个原理,两张形状一样但颜色不一样的图形放在一张Css Sprite中,然后再控制位置即可。

3. 小结

就是在 页面 上加入了这么 一个 动态的 效果 , 页面 才不会显得那么平静如水。

有趣的交互 效果 能让你的 页面 熠熠生辉、锦上添花。

但并不是所有Css Sprite的尺寸都能这么完美的贴合元素,下一小节我们将告诉大家应该如何调节背景 图片 的大小以适应 页面 元素。

查看更多关于动态变更背景图位置的详细内容...

  阅读:68次

上一篇

下一篇

第1节:什么是Css Sprite?    第2节:Css Sprite和雪碧之间有什么关系?    第3节:为什么要使用Css Sprite?    第4节:Css Sprite过时了吗?    第5节:JPG 格式图片    第6节:PNG 格式图片    第7节:SVG 格式图片    第8节:Css Sprite:矩形图    第9节:Css Sprite:条形图    第10节:背景图片    第11节:背景图定位    第12节:动态变更背景图位置    第13节:Css Sprite尺寸不吻合时怎么办?    第14节:过渡动画和帧动画的区别    第15节:适合过渡动画的场景    第16节:适合用帧动画的场景    第17节:帧动画和过渡动画的优缺点    第18节:CSS 动画的定义    第19节:CSS 动画的调用    第20节:帧动画函数steps()的解析    第21节:动画实例项目结构    第22节:定义动画    第23节:调用动画    第24节:连接两个Css Sprite的动画