当前位置: 首页 > news >正文

站在巨人的肩膀上——制作酷炫web幻灯片

你是否还在用ppt做一些毫无意思的幻灯片?你是否在做ppt的时候绞尽脑汁想把效果做的吸引大家?你是否想通过一次ppt吸引领导的注意?那好吧!来学学怎么制作一款炫酷的web幻灯片~

ps:如果看到这里还不感兴趣就请先看看素材演示,这个演示是前些时候给组里新人介绍HTML5的时候自己做的一款幻灯片!

 

工具

  1. 一款最近版本的chrome浏览器(火狐,safari也可)
  2. 一款趁手的IDE工具
  3. impress.js君(您也可下载本页素材进行自己需求的修改)
 

优点

几乎不需要写任何JS,只需要在每个子页DOM处添加几个属性就可达到效果!至于CSS嘛,根据你的幻灯片需求,看情况写啦!

操作时候可以用键盘空格、光标或者鼠标滚轮控制幻灯片切换

 

原理

看完效果大多数人应该就了解了原理,在这里还是罗嗦一下:其实每一个子页就是id为impress的div下的一级div,impress将他们每个起始位置或动画角度定好(由我们来配),当子页出现时候通过平滑的css动画过度到屏幕正向面前。就好像一张大纸上画了好几个div,屏幕就像一个放大镜焦点,从第一个div开始,挨个看div,在过程中不断平移或旋转这个大纸(3d效果动画另说)。

 

HTML部分结构

  1. <body>
  2. ....
  3. <div id="impress">
  4. <div class="step">子页一</div>
  5. <div class="step">子页二</div>
  6. <div class="step">子页三</div>
  7. <div class="step">子页四</div>
  8. ....
  9. </div>
  10. ....
  11. </body>

 

JS代码部分

除了引入impress.js就是下面这句了:

  1. <script> impress().init(); </script>

 

API

  • data-x:幻灯片的x坐标(子页面出现时候进行平移)
  • data-y:幻灯片的y坐标(子页面出现时候进行平移)
  • data-z:幻灯片的z坐标(子页面出现时候进行z轴深度的平移)
  • data-scale:缩放。通过指定一个值来进行缩放,将该子页出现时进行放大,同时其他子页就会相对变小
  • data-rotate:旋转。通过一个数字度数来确定旋转你的幻灯片
  • data-rotate-x:为3D用,这个数字度数是它应该相对x轴旋转多少度。(前倾/后仰)
  • data-rotate-y:为3D用,这个数字度数是它应该相对y轴旋转多少度。 (左摆/右摆)
  • data-rotate-z:为3D用,这个数字度数是它应该相对z轴旋转多少度。

一共就这几个参数,配置在每个子页div的DOM上

 

DEMO

  1. ……
  2. …………
  3. <div id="title" class="step" data-x="0" data-y="0" data-scale="4">
  4. <span class="try">进入正题</span>
  5.  
  6. <h1>HTML <sup>5</sup></h1>
  7. <span class="footnote"><sup>*</sup>W3C万维网联盟</span>
  8. </div>
  9. <div id="yuyi" class="step item" data-x="850" data-y="3000" data-rotate="90" data-scale="3">
  10. <h3>语义</h3>
  11. <img src="img/yy.png" width="100%">
  12.  
  13. <p class="font6">HTML5 引入了新的 HTML 元素,通过使用这些元素,开发者可以更细致的描述文档结构,让文档更加易读,搜索引擎也能更好的理解页面中各部分间的关系,我们也可以搜索到更快,更准确的信息。
  14. </p>
  15. </div>
  16. …………
  17. ……
 
 

 这是幻灯片中的一个片段,截取了源码中两个子页代码,从这里可以读出3个要点:

  1. 每个子页是一个div,必须有一个step作为class,如果没有,这个div将不会在幻灯片进行时候出现
  2. api中的属性写在子页div中
  3. 每个子页的自定义css可以定义class或者id写在css文件中

 

到这里,聪明的读者应该已经迫不及待的,想要靠自己的智慧想要去亲手做一个了。但是这时候我再废话几句我的源码:

    1. <div class="step slide" data-x="-1000" data-y="-1500">
    2. <img src="img/h5.png">
    3.  
    4. <h1>HTML5 介绍</h1>
    5. </div>

    第一个子页这里data-x,data-y是可以从0开始的,之所以这样其实是想告诉大家这里可以不从0开始,哈哈!可以把定位在0子页之前的这种子页当成幻灯片前言

    1. <div id="overview" class="step" data-x="3000" data-y="1500" data-scale="10">
    2. </div>

     源码最后的子页有个这个空的div,其实是为了展示出来“整张大纸”的全景,坐标是自己摸索出来的,放大倍数也是根据内容多少而大致试出来的。这个div其实定义了style:display:none,但是幻灯片还是会展示,只是个空的而已。也就是说即便对他设置了css让他隐藏,但只要有step这个class在,一样不会被忽略!

点击这里在线调试和把玩相关代码

原文链接:http://www.gbtags.com/gb/share/5688.htm

转载于:https://www.cnblogs.com/gbtags/p/4642739.html

相关文章:

  • 怎么去掉Flex4生成的SWF加载时的进度条
  • 正式开始我的技术生涯
  • “.NET 4.0网络开发入门之旅系列文章”——IP知多少(上)
  • Section 1.5 也许这才是暴力搜索
  • “.NET 4.0 网络开发入门之旅系列文章”—— IP 知多少?(下)收藏 《 .NET 4.0网络开发入门之旅-- 我在“网” 中央》...
  • 项目总结- 架构及代码样例
  • 关于Flash Player详细说明
  • android 网络交互
  • 指定索引
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • 这个世界并不亏欠我们什么——Leo网上答疑52
  • 《python核心编程》笔记——文件的创建、读取和显示
  • 详解TCC89x的LCD数值设置
  • gentoo系统安装
  • 你为什么不写注释?
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 3.7、@ResponseBody 和 @RestController
  • Android开源项目规范总结
  • Android组件 - 收藏集 - 掘金
  • ES6 学习笔记(一)let,const和解构赋值
  • input实现文字超出省略号功能
  • JAVA SE 6 GC调优笔记
  • JS函数式编程 数组部分风格 ES6版
  • Laravel 中的一个后期静态绑定
  • Mysql5.6主从复制
  • Nginx 通过 Lua + Redis 实现动态封禁 IP
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 机器学习 vs. 深度学习
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 聚簇索引和非聚簇索引
  • 前端_面试
  • 前端攻城师
  • 前端技术周刊 2019-01-14:客户端存储
  • 前端路由实现-history
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 推荐一个React的管理后台框架
  • 微信小程序开发问题汇总
  • 问题之ssh中Host key verification failed的解决
  • 硬币翻转问题,区间操作
  • 与 ConTeXt MkIV 官方文档的接驳
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • #LLM入门|Prompt#1.8_聊天机器人_Chatbot
  • #QT(一种朴素的计算器实现方法)
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (十五)使用Nexus创建Maven私服
  • (算法)Game
  • (转)nsfocus-绿盟科技笔试题目
  • ***通过什么方式***网吧
  • **PHP二维数组遍历时同时赋值
  • .net mvc部分视图
  • .net wcf memory gates checking failed
  • .Net 垃圾回收机制原理(二)
  • .net专家(张羿专栏)
  • :not(:first-child)和:not(:last-child)的用法
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解