整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

一个初级前端,面试的时候要求手写js轮播效果,写不出来正常吗

正常,轮播这种东西纯用css都能实现,随手就能写,从新建记事本开始计时,写完超过5分钟你砍我,扯什么js当借口。。。


为啥会有这么多人不信啊。。。我贴gif看得清代码么?你们看这点代码有难度么。。。从新建记事本开始计时,编辑器editplus,有代码染色,无自动补全,换系统自带记事本写也可以。html部分纯手打,用了大概1分30秒,这部分你把我屏幕关了就给个键盘让我写10遍我都能写10份分毫不差的出来,一个制表符和换行符都不带多的。。。剩下三分钟在浏览器上按F12写css样式,浏览器有补全,最后复制粘贴整理到代码里,刷新页面确认效果收工。。。。一共4分31秒,animation的参数顺序忘记了,稍微试了几次,不然还能快一点。其实比我想象中慢,我本来想说3分钟来着,还好稳了一手。。。



好的,我发现PC知乎可以贴代码,那我贴出来吧。。。真是纯基本功,面试考这个没毛病

<html>
<head>
</head>
<body>
	<style>
		body{background: #ddd;}
		.aaa{width: 300px;height: 100px;margin: 0 auto;overflow: hidden;}
		.bbb{width: 300px;height: 100px;position: relative;left: 0;white-space: nowrap;animation: ddd 3s cubic-bezier(0.5,1,0.5,1) infinite normal;}
		.bbb:hover{animation-play-state:paused;}
		.bbb a{width: 100px;height: 100px;display: inline-block;line-height: 100px;text-align: center;color: #fff;font-size: 40px;}
		@keyframes ddd{0%{left:0;}33%{left:-100px;}66%{left:-200px;}100%{left:-300px;}}
		.bbb a:nth-child(1){background: #f00;}
		.bbb a:nth-child(2){background: #0f0;}
		.bbb a:nth-child(3){background: #00f;}
		.bbb a:nth-child(4){background: #f00;}
		.bbb a:nth-child(5){background: #0f0;}
		.bbb a:nth-child(6){background: #00f;}
	</style>
	<div class="aaa">
		<div class="bbb">
			<a>1</a><a>2</a><a>3</a><a>1</a><a>2</a><a>3</a>
		</div>
	</div>
</body>
</html>


手写 JS 轮播效果算个啥,我见过要求 纯 CSS 实现轮播效果的

初级前端定义应该是熟练使用某种框架,了解基本的 JS 基础的相关知识,浏览器提供的各种 API。就一个 JS 实现的轮播效果来看,这里面涉及到的 JS 基础并不会太难,所以我认为这样面试是完全合理的

在写轮播组件的时候,如果能注意类的抽象,方法的封装。能够可复用,可扩展,就可以更好的展示自己的能力,offer 也分分钟拿下


正常 我工作3年半,你让我没准备直接写也写不出来

事实上是大部分面试官都是在面试你之前在网上搜两道题,自己看懂了,再来面试你

甚至有的面试官只看到网上的一种解法,就默认你应该用他看到的那种解法,你要方法和他不一样,一样挂你

我有碰到过和我视频share screen让我debug css的面试官。。那个视频软件还可以给鼠标权限,但搞笑的是我的鼠标进不去他的developer tool...所以只能我口述,她debug。。最后按我的口述给她debug出来了,但是方法和她的不一样 我也是醉了。。

接着让我share一个我觉得好的css solution, 我说我们用纯css实现了responsive font size

大概就是 calc(38px +(60 - 38) * (100vw - 768px) / (1440 - 768)); 这样做一般最多只用打三个断点就可以覆盖手机到桌面的所有情况下的responsive font size,并且使得字体自适应屏幕大小。

比起直接用vw,这样做可以自己设定自己的比例尺,任意调节大小;比起em, rem这种残疾方法,这样不需要打无数个断点。

那边hmm, interesting... 也不知道她听懂没。。

、HTML基本信息

注释:<!-- -->

DOCTYPE:就是告诉浏览器,我们要使用什么规范

head:网页头部标签

  • title:网页标题
  • meta:描述性标签,描述网站的信息,用来做SEO
    • charset = "UTF-8"
    • name = "keyword" content = ""关键词
    • name = "descrisption" content = ""描述

body:代表网页主题

二、网页基本标签

标题标签

  • <h1>一级标签</h1>一直到6级标签

段落标签

  • <p>段落标签</p>

换行标签

  • <br/> /是闭合的意思,单标签,闭不闭合都行

水平线标签

  • <hr/>

字体样式标签

  • <strong>粗体</strong>
  • <em>斜体</em>

注释

  • <!-- -->

特殊字符

  • 空格 ---->一个空格
  • 大于号 >
  • 小于号<
  • 版权符号©

特殊符号就是 & xxx ;

三、图像标签

<img src="path" alt="文字" title="text" width="x" heigth="y" />

  • src 图像地址 必填
  • alt 图像的代替文字(找不到图片的时候显示) 必填
  • title 鼠标悬停提示文字
  • width 图像的宽度
  • height 图像的高度

注意:../ 代表上一级目录

四、链接标签

文本链接

<a href="path" target="目标窗口位置">链接文本或图像</a>

  • href 链接路径,要跳转带那个位置 必填
  • target链接在哪个窗口打开:常用值_self 当前窗口(默认的)、_blank 新窗口

图像链接:就是嵌套图片标签

页面间链接

  • 从一个页面链接到另一个页面

锚链接

  • 第一步需要一个标记 使用name做标记
  • 第二步跳转到标记 使用#标记
  • <a name="top" ></a>
    <a href="#top"></a>
    上面是页面内的跳转

    <a name="down"></a>
    <a href="第一个页面的path#down"></a>
    页面间的跳转

功能性链接

  • 邮件链接:mailto: <a href="mailto:邮箱"></a>点击后会打开邮箱
  • qq链接:在qq推广工具里面的

五、行内元素和块元素

块元素

  • 无论内容多少,该元素独占一行
  • p、h1-h6

行内元素

  • 内容撑开宽度、左右都是行内元素的可以排在一起
  • a、strong、em...

六、列表

什么是列表:就是一种展示方式

有序列表

  • <ol> <li></li> </ol>

无序列表

  • <ul> <li></li> </ul>

自定义列表

<dl>
    <dt></dt> 标题
    <dd></dd> 选项
    <dd></dd>
    <dd></dd>
</dl>

七、表格

为什么使用表格

  • 简单通用
  • 结构稳定

基本结构

  • 单元格
  • 跨行
  • 跨列
<table border="1px" 边框>表格标签
    <tr>
        <td></td>列标签
        <td></td>
        <td></td>
    </tr>行标签 这代表一行
</table>

跨列:使用colspan="夸的列数" <td colspan="4">

跨行:使用rowspan="夸的行数" <td rowspan="4">

八、视频和音频

视频元素

  • video
  • <video src="path" controls autoplay></video>
  • src:资源路径
  • controls控制条
  • autoplay自动播放

音频元素

  • audio
  • <audio src="" controls autoplay></audio>

九、页面结构分析

元素名

描述

header

标题头部区域的内容(用于页面或页面中的一块区域)

footer

标记脚部区域的内容(用于整个页面或页面的一块区域)

section

web页面中的一块独立区域

atricle

独立的文章内容

aside

相关内容或应用(常用于侧边栏)

nav

导航类辅助内容

十、iframe内联框架

<iframe src="path" name="mainFrame"></iframe>

  • src必填
  • width
  • heigth
  • name标记
  • name的使用
    <iframe src="" name="hello" frameborder="0" width="1000px" heigth="800px"></iframe>

    <a href="path" target="hello"></a>
    点击超连接后,会在内联框架里显示这个页面

十一、表单

表单:form

<form method="post|get" action="result.hetml">
    <input />
</form>
  • method 规定如何发送表单数据常用psot、get
  • action 表示向何处发送表单数据,把表单的数据发送给那个地方

get方式提交:我们可以在url中看到我们提交的信息,不安全,但高效

post方式提交:比较安全,可以传输大文件

表单元素格式

属性

说明

type

指定元素的类型。text、password、checkbox、radio、submit、reset、file、hidden、image、button默认为text

name

指定表单元素的名称 必填,用来后台读取

value

元素的初试值。type为radio时必须指定一个值

size

指定元素的初始宽度。当type为text时或者password时,表单元素的大小以字符为单位。对于其他类型,宽度以像素为单位

maxlength

type为txet或password时,输入的最大字符数

cheaked

type为radio或cheackbox时,指定按钮是否被选中

单选框

  • input type="radio"
  • value 单选框的值
  • name :表示组,name一样一次只能选一个,name不一样可以选多个
  • checked默认选中的

多选框

  • input type="checkbox"
  • value = "sleep"
  • name = "hooby"
  • checked默认选中的
  • <input type="checkbox" name="sleep" value="slppe" checked/>shujiao
    <input type="checkbox" name="sleep" value="slppe"/>shujiao
    <input type="checkbox" name="sleep" value="slppe"/>shujiao
    <input type="checkbox" name="sleep" value="slppe"/>shujiao
    <input type="checkbox" name="sleep" value="slppe"/>shujiao
    <input type="checkbox" name="sleep" value="slppe"/>shujiao
    多选框的结果是以数组的形式返回的

按钮

<input type="button" name="btn1" value="点击" />普通按钮
<input type="image" src ="点击跳转的path"/>图片按钮
<input type="submit"/>提交按钮
<input type="reset"/>重置按钮

下拉框

<select name="列表名称">
    <option value="选项的值" select>中国</option>
    <option value="选项的值">中国</option>
    <option value="选项的值">中国</option>
    <option value="选项的值">中国</option>
    <option value="选项的值">中国</option>
</select>
提交的格式就是列表名称和value
  • selected 默认选择

文本域

<textarea name="name" cols="列数" rows="行数">文本内容</textarea>

文件域

<input type="file" name="files"/>
<input type="button" value="提交"/>

邮件验证

<input type="email" name="youjian">

URL

<input type="url" name="url"> 

数字验证

<input type="number" name="num" max="100" min="0" step="10">

滑块

<input type="range" max="100" min="0">

搜索

<input type="search" name="search">

十二、表单的应用

隐藏域 hidden

<input type="text" id="mark" hidden>

只读 readonly

<input type="text" id="mark" readonly>

禁用 disabled

<input type="text" id="mark" disabled>

增强鼠标可用性

<label for="mark">点击</label>
<input type="text" id="mark">

十三、表单初级验证

为什么要进行表单验证:缓解服务器压力、保证数据安全

提示信息

  • placeholder="提示信息" 在输入框上

非空判断

  • required

正则表达式验证

  • pattern
  • <input type="text" name="mail" pattern="正则表达式">

高级验证使用js

人人都是产品经理【起点学院】,BAT实战派产品总监手把手系统带你学产品、学运营。

产品设计时细节是产品经理最头疼的问题,一个button,一个链接都要考虑太多的细节问题。作者整理了常见的一些功能设计问题,一篇文章看懂这些功能设计。来学习吧。

定义

链接也称为超链接,所谓的超链接是指从一个网页指向一个目标的连接关系,这个目标可以是另一个网页,也可以是相同网页上的不同位置,还可以是一个图片,一个电子邮件地址,一个文件,甚至是一个应用程序。而在一个网页中用来超链接的对象,可以是一段文本或者是一个图片。当浏览者单击已经链接的文字或图片后,链接目标将显示在浏览器上,并且根据目标的类型来打开或运行。

样式

链接可以是一个字或是一段字这样的文本,也可以是一个按钮,一张图片,当你点击后跳转到另一个目标,当你把鼠标指针移到某个链接时会变成一个小手,当然在手机上没有这一特点。

1. 文本样式的链接

文本样式的链接一般在搜索引擎的网站呈现蓝色字样,大多会在下面加上下划线以便识别,不过现如今考虑到不影响文本的可读性与用户体验,逐渐取消了下划线。而在一些别的网站考虑到界面设计风格各方面的因素而不用蓝色。

谷歌的文本链接是蓝色,没有下划线

百度的文本链接也是蓝色,关键词是红色,有下划线

而京东的文本链接有灰色,有白色,有黑色

2. 按钮样式的链接

按钮样式的链接比文本样式的更容易识别,每一个按钮都是一样链接。

按钮样式链接

3. 图片样式的链接

图片样式的链接可以是单独的一张图片,也可以是文字与按钮一起组成一张图片,只是鼠标指针扫过图片的任何一个部位都会变成小手。

如桌面弹出这种游戏小窗口的图片式链接

由文字/图/按钮样式一起构成的一张图片式按钮,鼠标可以点击图中任何一部位

打开方式

链接打开的方式有三种:第一种是在当前页面刷新跳转,国外的网站大多是这样的打开式;第二种是在新标签页面打开链接,国内大多采用这种;第三种是提示用APP打开。当然现在出现了一种新的打开方式,那就是二维码扫描。

提示用美拍APP打开

类型

按照连接路径的不同,网页中超链接一般分为以下3种类型:内部链接,锚点链接和外部链接。

链接还可以分为动态链接和静态链接。动态超链接指的是可以通过改变HTML代码来实现动态变化的链接,例如我们可以实现将鼠标移动到某个文字链接上,文字就会象动画一样动起来或改变颜色的效果,也可以实现鼠标移到图片上图片就产生反色或朦胧等等的效果。而静态链接,顾名思义,就是没有动态效果的链接。

1. 内部链接

与外部链接(即反向链接)相反,内部链接是指同一网站域名下的内容页面之间互相链接。如频道、栏目、终极内容页之间的链接,乃至站内关键词之间的Tag链接都可以归类为内部链接,因此内部链接我们也可以称之为站内链接,对内部链接的优化其实就是对网站的站内链接的优化。

2. 锚点链接

HTML中的链接,正确的说法应该称作"锚点",它命名锚点链接(也叫书签链接)常常用于那些内容庞大繁琐的网页,通过点击命名锚点,不仅让我们能指向文档,还能指向页面里的特定段落,更能当作"精准链接"的便利工具,让链接对象接近焦点。便于浏览者查看网页内容。类似于我们阅读书籍时的目录页码或章回提示。在需要指定到页面的特定部分时,标记锚点是最佳的方法。

3. 外部链接

外部链接,又常被称为:“反向链接”或“导入链接”,是指通过其他网站链接到你的网站的链接。

外部链接指的是针对搜索引擎,与其它站点所做的友情链接。高质量的外部链接指:和你的网站建立链接的网站知名度高,访问量大,同时相对的外部链接较少,有助于快速提升你的网站知名度和排名的其他网站的友情链接。

如果按照使用对象的不同,网页中的链接又可以分为:文本超链接,图像超链接,E-mail链接,锚点链接,多媒体文件链接,空链接等。

链接是一种对象,它以特殊编码的文本或图形的形式来实现链接,如果单击该链接,则相当于指示浏览器移至同一网页内的某个位置,或打开一个新的网页,或打开某一个新的WWW网站中的网页。

链接状态

链接在交互上一般会呈现4种状态,即默认状态/悬停时状态/点击时状态/点击后状态。比如谷哥网站的交互体验。如下图:

点击前

悬停时,下面浮现半透明线条

点击时,有波纹晕开的动态效果

点击后,下面线条粗

有时候是3种状态,比如百度网和知乎应用:

默认状态

点击时链接变红

点击后链接变成紫色

IOS系统知乎应用的3种状态,而在Android系统没有用力点击这一状态。

默认状态

点击状态

用力点击会弹出预览小窗口

有些时候只有2种状态,如下图谷歌网:

默认和点击后状态一样

鼠标悬停时出现下划线

默认状态

点击时

而有时候比如在APP里有时候就一直只有一种状态,也可以称静态链接,之前的可以称之为动态链接。在不同的使用场景会因为当时的情况选择最合适的交互体验设计。有的情况下还会加上点击的音效,使用户体验更畅快,这在移动端用的使用情况多一些。

总之链接是网页不可缺少的构成部分,每一个链接的呈现都是经过深思熟虑的。

作者:潘瑶琼(简书作者)

本文由 @潘瑶琼 授权发布于人人都是产品经理,未经作者许可,禁止转载。