gigipop 2019-06-30
这个可能是网页没有设置 meta charset 编码造成。
添加如下代码
<meta charset="UTF-8" />
将 disabled 写在 input 上
<input type="text" class="form-control" id="name" placeholder="姓名" disabled />
如下代码,点击时报错,显示函数未定义
<button type="button" class="btn" id="getCode" onclick="getCode()"></button>
改成在 js 写事件监听
$("#getCodeBtn").on("click", function() {
  getCode();
});使用 font-awesome 的动画时(loading 效果),倘若用 display 控制显隐,则在 IE 下会表现异常。
图标会瞬间显示出来,但是却没有动画或者过渡效果。
暂时理解为 CSS3 的 animation、transition、transform 不支持 display 的改变,直接操作 display 会破坏动画。
让 css 按顺序处理
浏览器的 UI 线程在处理 UI 操作时,将多个 css 属性的 set 操作加入在同一个 tick 中处理。如果在两个 css 属性的 set 操作中间插入 get 操作,UI 线程在处理的时候将会按顺序执行。
container.css("display", "block");
container.css("display");
container.css("opacity", "1");使用setTimeout来 hack 这个问题
本质上也是改变了 set 操作的顺序,只是 delay 的值在不同浏览器下需要选取的值也不同
container.css("display", "block");
setTimeout(function() {
  container.css("opacity", "1");
}, delay);通过window.requestAnimationFrame来实现
container.css("display", "block");
requestanimationframe(function() {
  container.css("opacity", "1");
});通过控制元素的显示隐藏来避开 display 的操作
i.fa {
  // display: none;
  width: 0;
  opacity: 0;
}
&.loading {
  i.fa {
    // display: inline-block;
    margin-left: 10px;
    width: 1em;
    opacity: 1;
  }
}隐藏也可以通过如以下样式来完成
i {
  position: absolute;
  display: block;
  height: 0;
  padding: 0;
  margin: 0;
}