【译】遗留浏览器中的表单

2017-07-20
阅读 4 分钟
2.2k
所有的web开发者都会很快(或者很痛苦地)意识到Web是一个粗糙的环境,其中最糟糕的一点就是老旧的浏览器。提到“老旧浏览器”,我们脑海中往往复现的就是旧版的IE。但其实老旧浏览器不止这一种,一个一年前的Firefox,比如ESR版本也算得上老旧了。至于移动端,由于有些浏览器和操作系统都不能升级,这就导致了许多老旧的...

【译】使用FormData对象

2017-07-16
阅读 3 分钟
3.6k
FormData对象能让你生成一系列用于XMLHttpRequest发送的键值对。它主要的目的在于发送表单数据,但也能独立用于传输有键形式的数据。其传输的数据格式和表单使用submit()方法、且编码类型为multipart/form-data所发送的数据格式相同。

【译】通过JavaScript发送表单

2017-07-09
阅读 8 分钟
3.8k
在[发送表单数据]()一文中,HTML表单可以声明式地发送一个HTTP请求。但表单也可以用JavaScript来准备一个HTTP请求。本文将探索如何做到这点。

【译】怎样创建定制表单组件

2017-06-21
阅读 14 分钟
4.9k
在许多情况下,[可用的HTML表单组件]()是不够的。若你想在诸如<select>元素的组件上[应用高级样式]()、或者想定制组件的行为,你就只能选择创建自己的表单组件。

一起来学Promise

2017-05-04
阅读 9 分钟
3.9k
被回调地狱整怕了?快试Promise吧!。Promise的核心思想其实很简单,就是将异步操作结果处理交给Promise对象的方法注册,然后等到异步操作完了再去取用这些处理操作。至于取用哪个处理操作,就得看Promise对象状态了。Promise对象一共有三种状态:Pending(初始状态)、Fulfilled(异步操作成功)、Rejected(异步操作失...

【译】表单数据校验

2017-01-02
阅读 12 分钟
4.7k
当你需要经常在服务器上校验数据时,在Web页面上的另加校验就有诸多好处。多数情况下,用户会被表单惹恼。而当用户填完表单时就校验数据,既有助于用户立即发现他们犯的错误,也能减少等待HTTP响应的时间、并减少服务器对错误表单输入的处理。本文介绍的,就是如何在表单所在页面对表单数据进行校验。

DOM元素的属性(property)和特性(attribute)

2016-09-14
阅读 3 分钟
7.4k
jQuery中有两个获取DOM元素属性的方法:prop()和attr(),看似可以互相替换,但若搞不清这两个方法获取的到底是什么“属性”,有时就会出现令人困惑的结果。官方文档中,用了下面的例子来解释这两者的不同:

原生js练习题---第六课

2016-05-13
阅读 3 分钟
3.3k
这里没有使用h5的拖动,毕竟原题也是考察借助鼠标事件实现自定义的拖动,所以就借鉴了《js高级程序设计》里的自定义拖动自己封装了个拖动api,当然由于做这个系列题目使用的都是es5的语法,所以IE8往下就兼容不到了(有兴趣的可以自己一试)。

textContent和innerText属性

2016-04-27
阅读 1 分钟
5.4k
在DOM操作中,我们如果要获取和修改节点的的文本,就离不开textContent或innerText属性。其中textContent作为标准方法,但无奈要IE8+;而innerText属性最近也被火狐支持了,已经成了不是标准的标准(参考)。也就是说,如果只考虑最新浏览器的话这两个方法都是可以使用的,那他们到底使用时有何不同呢?先上代码:

原生js练习题---第五课

2016-04-25
阅读 3 分钟
2.1k
比较简单的点击事件处理,也就处理点击选择框展示菜单、点击菜单选择、点击页面任意角落隐藏菜单这三件事。这里注意点击选择框展示菜单时一定要阻止冒泡,要不然会冒到顶层元素直接触发隐藏菜单的事件,导致菜单点不出来。

原生js练习题---第四课

2016-04-12
阅读 4 分钟
2.5k
又见导航条,先看下css,这里用的是雪碧图背景做出圆角的效果,虽然是经典的方法、兼容性好,但这种代码写起来实在是有点丑陋。因为需要三层嵌套,分别用背景图绘制左圆角、右圆角和中间背景,导致dom结构变复杂了、更进一步影响js的代码简洁。

原生js练习题---第三课

2016-03-23
阅读 2 分钟
1.9k
略过,不过typeof用来判断数据类型是不太靠谱的,尤其是涉及到引用类型的时候,除非是要检测一个变量是否有定义,否则最好采用Object.prototype.toString方法。

原生js练习题---第二课(下)

2016-03-13
阅读 2 分钟
2k
值得注意的一个地方是那个箭头,我这里只是用了简单的字符串替换,而原题用了背景图片移动来实现切换箭头,但是似乎那样做会导致整个容器的左右偏移、效果不是很好。

表单知识总结

2016-03-11
阅读 2 分钟
1.9k
其实如果只是单纯的DOM操作,元素的name属性看来是个可有可无的东西,其功能完全可以被id和class替代。但现在我知道了,至少对于表单元素,name还是很重要的---指定type的话只是给出个样式而已,没有相同的name怎么能标识操作一类数据的控件呢 !当然也就不能实现其默认交互效果啦。

原生js练习题---第二课(上)

2016-03-05
阅读 1 分钟
2.2k
主要是切换的判断条件,一开始我还用点击次数的奇偶性来判断-_-||,其实直接检查菜单有没有显示即可。检查的时候有个小trick,初始状态菜单的style属性为空,因为我们接下来要点按钮显示,所以把这种情况和style.display为none的情况归为一类丢到else里最省事。

前端碎语(6)

2016-03-04
阅读 2 分钟
2k
在页面里,屏幕上光标的样式我们可以用css的'cursor'属性进行定义。一般来讲,只要光标hover到指定的元素上面其样式就会按我们指定的进行显示,但是如果我们指定的元素被其他元素“遮住了”呢?来看看下面这个demo:

用自定义的拖放实现一个汉诺塔游戏

2016-03-03
阅读 1 分钟
2.3k
做这个汉诺塔游戏的想法,来自于几个月前做百度IFE第一期的一个题目,题目要求在两个容器间实现子元素的相互拖拽效果。当时我就突发奇想:容器看成柱子,子元素看成盘子,再加一点限制底下盘子移动的判断和胜负的判断,不就和经典的汉诺塔游戏没什么两样吗?

前端碎语(5)

2016-02-29
阅读 2 分钟
2.6k
在一些应用场合,我们不希望用户能够选择文字。比如在拖动交互中,如果用户能选择元素内部的文字,也就意味着能拖动它们,这样就会干扰对元素的拖动、影响拖动的效果;再如一些网站也会简单地通过禁止用户选择文字以防止用户复制站内文字(只能骗骗小白而已,不知道我们都会F12吗<( ̄︶ ̄)>)。

前端碎语(4)

2016-02-28
阅读 2 分钟
2.2k
键盘事件最基本的应用场合是控制文本框元素,而我们要讨论的,就是几个键盘事件:keydown、keypress、keyup、textInput发生的时机与文本输入的过程的关系。先看一段代码:

原生js练习题-第一课

2016-02-27
阅读 2 分钟
5.5k
差不多把《js高级程序设计》刷完了,所谓实践出真知,尤其编程这种实践和经验相当重要的事情,不能光说不做。但以我现在的水平,直接上手那些大项目是还是不够格的,还是得一步步扎实好基础再有能力去开拓新世界、赶上前端界风起云涌的浪潮。

遍历DOM元素的children属性遇到的坑

2016-02-26
阅读 3 分钟
7.9k
关于DOM元素的children属性,以前我只在意它和childNodes属性的区别:即children属性只会返回子元素节点集合,而childNodes返回的就不止元素节点,还有文本节点等所有子节点集合。这样看来,children似乎是我们获取子元素而舍弃其他类型的子节点的最佳选择,虽然说在IE8-的浏览器下用它还会返回注释节点,但兼容起来也是...

前端碎语(3)

2016-02-25
阅读 3 分钟
2.1k
setInterval()这个间歇调用函数是应用得比较广的,尤其在比较古老的浏览器中实现动画效果时,往往离不开它。然而这个函数却有不少坑,由于其实现是把要执行的代码插入待执行队列排队执行,同时为防止连续执行,这个队列中只能有一个最早进来的它的代码实例。如果队列中也有其他任务在等待,而且执行了很长时间,首先就很...

data URI及其应用

2015-11-23
阅读 5 分钟
2.6k
标题列举了几个名词,不细究地话,多数的互联网的使用者们还是容易分不清的。这几个东西有个共同点就是能通过浏览器输入并访问,而浏览器的输入框也确实能接收不少东西,其中最基本的功能便是让我们输入网址。所谓网址有两层含义,一是直接使用网站服务器的ip地址,以及便于记忆的域名,输入域名后浏览器会通过DNS获得该...

前端碎语(2)

2015-11-04
阅读 3 分钟
2.4k
这个系列保持开坑不埋的状态已经过去三个月了,而在这几个月中我才算第一次认真地深入理解js。虽然期间笔记是记了不少,但写博文又不应是简单的复制粘贴,还是得保证有讨论价值、有干货的。而我面对的现实是:一来基础差导致识别和捞出有讨论价值的干货得自身功夫练到一定阶段,二来又因为记的杂乱且缺乏日常整理,整理...