站内搜索

本次搜索找到结果 13 条

原文:http://www.zcfy.cc/article/457

用 CSS 隐藏页面元素有许多种方法。你可以将 opacity 设为 0、将 visibility 设为 hidden、将 display 设为 none 或者将 position 设为 absolute 然后将位置设到不可见区域。

你有没有想过,为什么我们要有这么多技术来隐藏元素,而它们看起来都实现的是同样的效果?每一种方法实际上与其他方法之间都有一些细微的不同,这些不同决定了在一个特定的场合下使用哪一个方法。这篇教程将覆盖到那些你需要记住的细小不同点,让你根据不同情况选择上面这些方法中适合的方法来隐藏元素。

原文:https://www.h5jun.com/post/animations-you-should-know.html

这是我今年为新人设计的一门课程的文字精简版,完整的PPT可参考:http://matrix.h5jun.com/slide/show?id=117

简单的 JS 动画

在浏览器里,动画实现的基本原理非常简单明了,其实就是采用定时器改变显示元素的一些属性的过程。不管是 JavaScript 操作 DOM 的动画,还是 CSS3 动画,还是 Canvas 动画,或者 SVG 动画,区别只是使用的 API、何种定时器,影响什么环境(DOM/Canvas/SVG/WebGL)。

基本动画

var deg = 0;
block.addEventListener('click', function(){
  var self = this;
  requestAnimationFrame(function change(){
    self.style.transform = 'rotate(' + (deg++) +'deg)';
    requestAnimationFrame(change);
  });
});

上面的例子里,我们使用了定时器 requestAnimationFrame,requestAnimationFrame 是浏览器专为渲染刷新设计的定时器接口,在早期版本的浏览器里,我们可以用 setTimeout 或者 setInterval 来代替它。定时器改变了方块元素的角度,每一次定时器触发我们就刷新并增加一次它的角度值,这样就产生了方块不断旋转的动态效果。

这就是我们需要的动画,几行原生JS代码就够了,是不是很简单呢?

事实上,上面的动画不是最佳的实现方法。它存在着几个明显的改进点。

近一个月,在使用360极速浏览器 打开新标签页 ,载入360导航,当鼠标滑动一会儿后会突然发现页面有刷新迹象。这种现象约是在上月360极速版内核升级至chrome16后出现得。在忙碌完去年12月的360导航种种变化后,进入2012年的今天,终于有心思去找找这个诡异的问题了。(我本机环境是win7+360极速chromium16 其他环境未跟测)

我试图重现了这种状况,发现每次用全新的标签打开导航后,鼠标滑过顶部的皮肤选择区时,立刻会出现页面闪动。F12打开开发人员工具,在NETWORK选项卡中并未发现“刷新”带来的页面请求,可见这样的闪动不是“刷新”。这样的页面闪动像是在对页面重绘。一开始我以为是特定事件导致得,后来发现在鼠标滑过笑话前的刷新按钮时,也会出现这种现象。经过剥离DEMO测试,可以断定,是由以下css代码造成得。