CSS 绘制三角形原理演示(动画)V4 版,具体参见以下链接:

//exp.xiaogd.net/hm/demo/css/css-border/v4/cbt_slide.html

上一个版本曾经留下两个问题,一个是在微软 edge 浏览器上,部分代码高亮增强插件工作不正常,导致整体显示完全崩溃。看了下是某个 DOM 的新增 api 在 edge 上不支持导致的。我的 edge 版本是 14,在 caniuse.com 上显示,它对这个特性的支持度是“Partial support with prefix: ms”,升级 edge 到 15 或以上版本应该可以解决,不过我也没有去尝试升级。

因为用 edge 的程序员应该并不多,这段时间以来原插件也一直没有去修正这个支持,因为整个插件追求的是极简,我估计它们也不会去支持要带前缀的特性,所以这里也不打算去解决这个问题。

另一个问题是某些子步骤不能回退或在回放过程中行为不一致,这次已经修正,所有子步骤可以回退且行为一致。

其它的一些调整:

  1. 在退回到上一张幻灯片时,保持所有已显示的子步骤为显示状态。原先的行为是回去时所有子步骤又重新隐藏,如果读者只是想回去看看之前的状态,又要重新 next 出所有的子步骤,个人觉得这个体验不是太好,而且会导致在回放过程中个别复杂的行为不一致。这个调整部分修改了 impress.js中的源码。
  2. 在部分子步骤呈现过程中使用了动态箭头的引导。我个人感觉时用户在看的过程有可能会失去焦点,因为他有时不知道下一个子步骤会在哪里呈现。当然,你也可能觉得这些是种干扰。这里主要还是想尝试下这种可能性,暂时也写得比较随意,没有将这些行为完全的脚本化。一种更好的引导方式或许是之前介绍的 product feature tour 的那种 mask and highlight 的方式。也初步看了下那种方式,跟 impress 的行为有点类似,估计无法简单整合,后面再看看吧。
  3. 其它的一些小调整及代码方面的部分优化。

就这个主题而言,这个可能是最后一个版本了,不打算再去改进了。个人感觉随着想深入的应用某些特性,impress.js 所施加的限制还是很大,方式也不够灵活。因为它本来的目的也只是用来做 presentation 的,是要结合人的演说的,这里单纯的用于一种被动的展示,受到某些限制也很正常。

今天在做网页的幻灯片时发现一个问题,就是在父元素设置隐藏时,也即 visibility:hidden,如果它下面的子元素设置了 visibility:visible,那么子元素依旧是可见的。

这点跟 display:none 之类的是不同的。而规范也确实是这么说的:

hidden: The generated box is invisible (fully transparent, nothing is drawn), but still affects layout. Furthermore, descendants of the element will be visible if they have 'visibility: visible'.

CSS 2.1

特此记录。

CSS 绘制三角形原理演示(动画)V3 版,具体参见以下链接:

//exp.xiaogd.net/hm/demo/css/css-border/v3/cbt_slide.html

此版本的改进有以下几点:

  • 更加细化的步骤。
  • 步骤间的连接过渡更加友好,具体为在下一步骤中尽量保留上一步的结果,并在此基础上演化。
  • 调整部分页面布局为左右两栏,充分利用页面空间。
  • 代码高亮方面的一些特性使用,使阅读更加友好。
  • 去掉一些步骤,比如删掉了背景颜色部分。
  • 去掉了过于花哨的连接动画,比如旋转方面的。
  • 其它一些小的改进,如增大了 border 的尺寸,把颜色从粉色改为红色,增加了部分文字的移入移出效果等。

一些存在的问题:

1、在 Edge 浏览器上有问题,由代码高亮增强插件导致。

2、某些子步骤不能回退或在回放过程中行为不一致,需要重新刷新页面。

这点由于框架本身并太支持过于细化和灵活的步骤,自己利用了一些 hack 的形式来达到某些效果,手写了不少的 js。目前来说,至少正常按顺序浏览没有太大问题,但要支持回退则还有许多琐碎的事要做,暂时也没有通盘去考虑这些,只是先对付了事,想达到较好的效果恐怕还要修改框架的源码。

最后我想说一点是,对于这个问题我目前已经做了有三个版本,但并不是说这个问题多么重要,又或者是我对它有什么特别的兴趣,都不是的。

或许后面会写些其它方面的主题。

我主要是想探索一些展示知识的新方式,探讨一些可能性以及评估这些工作的难度。所以,还是跟之前那样,如果你有什么意见或建议,欢迎留言!

之前也曾写了一个类似的演示,因为一开始弄 impress.js,一些特性还不熟悉,做得相对较差了些,现在依旧可以访问:

CSS 绘制三角形原理演示(动画)(旧版)(不推荐)

现在重新做了些修改,V2 版本参见:

CSS 绘制三角形原理演示(动画)V2 版

主要的一些改进如下:

  • 增加了子步骤,一页中内容过多时可以逐步呈现。
  • 增加了代码的高亮。(使用了 prism.js)
  • 增强的 impress.js,增加了导航按钮,下拉选择列表,进度条以及自动播放等特性。
  • 重新规划了页面的整体布局,在结尾增加了预览页。
  • 增加了部分动画演示,调整了部分语句及顺序等。
  • 支持在手机端阅读(不过导航效果等还不太好,仍不推荐在手机端阅读)。

如果你有什么改进意见,欢迎留言!