`
yunnick
  • 浏览: 392579 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一道Web前端面试题

阅读更多

一、用CSS实现以下布局

 

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


 

二、用javascript优化布局。

 

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

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

关键字:
javascript、封装、复用

 

==========分=割=线==================

一、CSS布局

页面格式如下:

 

<div id="box">
  <div id="first">first</div>
  <div id="second">second</div>
  <div id="third">third</div>
  <div id="newdiv"></div>
</div>

 

分为四个div框,前三个添加了三个单词以便于辨认,后面的"newdiv"是放大后显示的div框。并在外面加了一个大框,在后面的定位时用到。

css代码:

#box{width:410px; height:360px;position:relative; }
#first{width:100px; height:200px; background:#ccd;  margin-bottom:10px;}
#second{width:200px; height:360px;background:#ccd; position:absolute; top:0px;left:110px;}
#third{width:100px; height:150px; background:#ccd; margin-top:10px; }

在编写 css时,我放弃使用float,因为在IE和FF中会产生差距较大的效果,不好控制。改用position定位,更利用控制。

 

二、JavaScript优化布局

思想:对前三个框添加mouseover事件函数,处理过程为:当鼠标经过时,本div框visibility属性设为hidden,显示newdiv框,采用绝对定位,大小为本鼠标经过的div框的1.25倍,而且给newdiv添加一个mouseout事件,当鼠标移出时newdiv消失,显示出本div框。

Js代码:

var newdiv;//放大显示的div元素
var lastele;//上一个鼠标经过的div元素
var ele;//鼠标正在经过的div元素
var section = {"first":1, "second":2, "third":3}

for (var divId in section )
{
	ele = document.getElementById(divId);
	ele.onmouseover = showcontent;//为前三个div元素添加mouseover事件。
}

function showcontent()
{
	this.style.visibility = "hidden";
	var ht = this.clientHeight;
	var wt = this.clientWidth;
	var px = parentX(this);//返回的是一个纯数值!!!
	var py = parentY(this);
	var parent = this.parentNode;
	if (lastele)
	{
		lastele.style.visibility = "visible";
	}
	newdiv = document.getElementById("newdiv");
	newdiv.onmouseout = function(){newdiv.style.display = "none"; if (lastele) lastele.style.visibility = "visible";};//为newdiv添加mouseout事件
	newdiv.style.display = "inline";
	newdiv.style.height = 1.25*ht + "px";//火狐中必须指出单位,否则无法解析。
	newdiv.style.width = 1.25*wt + "px";
	newdiv.style.position = "absolute";
	newdiv.style.top = py + "px";
	newdiv.style.left = px + "px";
	newdiv.style.backgroundColor = "#aac";

	lastele = this;
}

//确定元素相对于父元素的位置的两个函数。
//获取元素相对于父亲的水平位置
function parentX(elem){
	//如果offsetParent是父元素,则直接退出
	return elem.parentNode == elem.offsetParent?elem.offsetLeft:pageX(elem) - pageX(elem.patentNode);
}
//获取元素相对于父亲的垂直位置
function parentY(elem){
	return elem.parentNode == elem.offsetParent?elem.offsetTop:pageY(elem) - pageY(elem.parentNode);
}

 以上~~

FF和IE都能正常显示~~

 

Ps:本来是个面试题,我却搞了一天 ==! 途中我很无聊的给box添加了"z-index:-1;" 结果在FF中mouseover事件无法响应了,真是晕啊~~

4
0
分享到:
评论

相关推荐

    工作日每天一道前端大厂面试题

    在前端面试中,JavaScript作为基石,其深入理解和灵活运用能力往往是考察的重点。下面将对一些常见的JavaScript知识点进行详细讲解。 1. **基础语法**:理解变量声明(var、let、const)、作用域(全局、局部、块级...

    一道常被人轻视的web前端常见面试题(JS)

    在Web前端面试中,面试题往往能揭示候选人的技术水平和实际问题解决能力。本文将深入分析一道常被忽视的JavaScript面试题,该题涉及到多个JavaScript核心概念,包括变量提升、`this`指向、运算符优先级、原型链、...

    fe-interview:每日一道经典前端面试题,一起共同成长

    "fe-interview-master"文件可能包含面试题的解答、示例代码、学习资源和讨论,对于想要提升前端面试技巧的开发者来说,这是一个宝贵的资源。通过研究这个项目,可以深入理解前端面试中常考的知识点,从而在实际面试...

    Web前端:你真的了解HTML吗 (雅虎曾经的一道面试题)-.docx

    HTML,全称HyperText Markup Language,是Web前端开发的基础,用于构建网页结构。它的重要性在于,良好的HTML结构设计直接影响代码的可维护性、灵活性以及网页性能。然而,许多人错误地认为HTML只是简单的标记语言,...

    笔试面试题 一道面试题关于信息系统的问答和注意事项

    笔试面试题 一道面试题关于信息系统的问答和注意事项 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的...

    一道关于Ajax、Jquery的面试题

    针对这道面试题,可能的问题方向包括: 1. **Ajax的基本工作原理**:解释Ajax是如何通过XMLHttpRequest对象实现异步通信的,涉及的步骤包括创建对象、打开连接、设置请求方法、发送请求、接收响应和处理数据。 2. ...

    on-day-one-question:一天一道面试题

    每天一道面试题,再也不怕面试官 先做一下自我介绍 您好,我是xxx,毕业于xxx大学,今天面试贵公司的web前端岗位,我想从以下三个方面介绍自己。 项目经历。 接触前端工作有四年时间了,前两年在一家法律互联网公司...

    老二牛车教育NET程序员面试题之AutoComplete

    本篇文章将基于.NET平台,详细介绍如何实现一个基本的AutoComplete功能,并通过一道具体的面试题目来加深理解。 #### 二、题目解析 ##### 2.1 题目要求概览 根据题目要求,我们需要实现以下两个主要功能: 1. **...

    learning-fixed:学不动

    高级前端进阶每天一道面试题前端技术书前端面试手册Front-end Job Interview Questions成为专业程序员路上用到的各种优秀资料、神器及框架微信小程序开发资源汇总Awesome JavaScriptGitHub最全的前端资源汇总仓库...

    leetcode卡-WebLearn:网络学习文档和代码

    leetcode卡 WebLearn web learning Doc and Code 前端大佬: (每日一道 LeetCode,jsliang ...(公众号「高级前端进阶」和壹题的作者,每天搞定一道前端大厂面试题,一年后会看到不一样的自己。) (公众号「前

    js代码-前端笔试第一题

    【标题】"js代码-前端笔试第一题"指的是在前端面试或者笔试中,涉及到JavaScript编程的一道题目。JavaScript,简称JS,是Web开发的核心语言,主要用于网页和网络应用的开发,实现用户交互、动态效果、数据处理等功能...

    采访:我是追梦赤子心,公众号“深圳湾码农”的作者,某上市集团公司高级前端开发,深耕前沿领域多年,每天攻破一道题,带你从0到1系统建造web全栈完整的知识体系!

    面试大前端每日一题,从基础到进阶,从原理到实战,用面试题来倒逼强迫自己每天去学习去查漏补缺,系统完善前端的完整知识体系!注:每天早上9点左右更新译文及前一天的答案,首页文件夹里的文章扩展网络,替代参考...

    javascript-leetcode面试题解递归与回溯问题之第77题组合-题解.zip

    JavaScript是Web开发中不可或缺的一部分,尤其在前端领域。LeetCode是一个广受欢迎的在线平台,它提供了大量的编程题目,帮助开发者提升算法技能,准备求职面试。第77题“组合”是LeetCode中的一道经典递归与回溯...

    java餐饮管理系统源码加数据库-excellent-articles:优秀文章集

    java餐饮管理系统源码加数据库 优秀文章集 KOA2框架原理解析和实现 ...一次内联元素错位引发对line-height的思考...从一道面试题说起—js隐式转换踩坑合集 CSS实现元素居中原理解析 前端骨架屏方案小结 Typescript配合Reac

    瑞晟2013笔试题

    以上是对“瑞晟2013笔试题”可能涵盖的知识点的一个全面梳理,旨在帮助考生或求职者全面准备相关考试或面试。当然,具体到每一道题目还需要结合实际题目内容进行针对性复习。希望这份概述能够为准备此类笔试的人士...

    针对“蚂蚁爬树“这道题的code

    "蚂蚁爬树"是一道经典的计算机编程问题,通常在算法竞赛或者面试中出现。这个问题的主要目的是模拟蚂蚁在树干上向上爬行的过程。通常设定为:一只或多只蚂蚁从树的底部开始,每次可以向上爬一步或两步,直至到达树顶...

    python入门到高级全栈工程师培训 第3期 附课件代码

    python入门到高级全栈工程师培训视频学习资料;本资料仅用于学习,请查看...11 强插一道面试题 12 Model连表操作梳理 13 多对多自关联 14 Model操作补充 15 再插两道JavaScript面试题 16 Model操作之select_related以及...

    Algorithms-JS:LeetCode算法题的JS解法:pencil::ledger: + 平时遇到的算法题、手写题汇总:green_book::blue_book::orange_book::books:

    同时,这个项目也可以作为面试准备的工具,帮助求职者在技术面试中应对各种算法挑战。 总的来说,这个项目将理论知识与实践操作相结合,对于想要提升JavaScript算法能力的开发者来说是一份宝贵的资料。通过学习和...

Global site tag (gtag.js) - Google Analytics