2008年阿里巴巴前端开发工程师面试题解

时间:2009年03月26日作者:愚人码头查看次数:4,483 views评论次数:0

阿里巴巴面试题出自:http://job.aliued.com/race/chooseRace/wd.html

BI上也有很多解法:http://bbs.blueidea.com/thread-2824105-1-1.html

前段时间在一位朋友的引荐下去应聘前端开发工程师,给我了面试题;

下面我把我的解法放出来:

1.用CSS实现布局

让我们一起来做一个页面
首先,我们需要一个布局。
请使用CSS控制3个div,实现如下图的布局。

  

这题不难,在平时项目开发过程中也经常会碰到:

主要考虑几个问题:1.IE6的3像素BUG;2.清楚浮动;

CSS代码
  1. div{background:#CCCCCC;}   
  2. #first{float:left;width:100pxheight:150px}   
  3. #second{clear:left;float:left;margin-top:10px;width:100px;height:150px}  
  4. #third{zoom:1; width:200px;margin-left:110px;_margin-left:107pxheight:310px}  

 

XML/HTML代码
  1. <div id=“first”></div>  
  2. <div id=“second”></div>  
  3. <div id=“third”></div>  

 

查看demo:http://www.css88.com/demo/alibaba/alibaba1.html

2.用javascript优化布局

由于我们的用户群喜欢放大看页面
于是我们给上一题的布局做一次优化。
当鼠标略过某个区块的时候,该区块会放大25%,
并且其他的区块仍然固定不动。

提示:
也许,我们其他的布局也会用到这个放大的效果哦。
可以使用任何开源代码,包括曾经你自己写的。

关键字:
javascript、封装、复用
 

惭愧啊,用上边那个布局我怎么也没把它优化出来,硬这头皮用绝对定位改了布局;

所以样式改成了这样

CSS代码
  1. body{ margin:0; padding:0}   
  2. div{background:#CCCCCCposition:absolute}   
  3. #first{width:100pxheight:150px}   
  4. #second{top:160px;width:100px;height:150px}   
  5. #thirdwidth:200pxheight:310pxleft:110px}  

javascript要考考虑封装、复用
 

 

JavaScript代码
  1. function zoom(id,x,y){ // 设置缩放函数参数:容器id、横向缩放倍数、纵向缩放倍数(等比例缩放时也可以设定一个参数)   
  2.     var obj=document.getElementById(id); // 获取元素对象值   
  3.     var dW=obj.clientWidth; // 获取元素宽度   
  4.     var dH=obj.clientHeight; // 获取元素高度   
  5.     //var oTop=obj.offsetTop;   
  6.     //var oLeft=obj.offsetLeft;   
  7.        
  8.     obj.onmouseover=function(){ // 鼠标移入   
  9.         this.style.width=dW*x+“px”// 横向缩放   
  10.         this.style.height=dH*y+“px”// 纵向缩放   
  11.         this.style.backgroundColor=“#f00″// 设置调试背景   
  12.         this.style.zIndex=1; // 设置z轴优先   
  13.     }   
  14.     obj.onmouseout=function(){ // 鼠标移出,设回默认值   
  15.         this.style.width=“”;   
  16.         this.style.height=“”;   
  17.         this.style.padding=“”;   
  18.         this.style.backgroundColor=“”;   
  19.         this.style.zIndex=“”;   
  20.     }   
  21. }   
  22. zoom(“first”,1.25,1.25);   
  23. zoom(“second”,1.25,1.25);   
  24. zoom(“third”,1.25,1.25);  

查看demo:http://www.css88.com/demo/alibaba/alibaba2.html

声明: 本文采用 BY-NC-SA 协议进行授权 | WEB前端开发
转载请注明转自《2008年阿里巴巴前端开发工程师面试题解

如果你读了我的文章,觉得有帮助: 说明
分类:JS, 前端资源
0条评论

暂时没有评论!

发表评论

*

*