百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

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

zhezhongyun 2025-02-09 15:03 34 浏览

你是否还在用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. ....

  2. 子页一

  3. 子页二

  4. 子页三

  5. 子页四

  6. ....

  • ....

  • JS代码部分

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

    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. 进入正题

    4. HTML 5

    5. *W3C万维网联盟

  • 语义

  • HTML5 引入了新的 HTML 元素,通过使用这些元素,开发者可以更细致的描述文档结构,让文档更加易读,搜索引擎也能更好的理解页面中各部分间的关系,我们也可以搜索到更快,更准确的信息。

  • …………

  • ……

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

    1. 每个子页是一个div,必须有一个step作为class,如果没有,这个div将不会在幻灯片进行时候出现

    2. api中的属性写在子页div中

    3. 每个子页的自定义css可以定义class或者id写在css文件中

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

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

      1. HTML5 介绍

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

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

    点击阅读原文获得更多精彩内容

    相关推荐

    Chinese vice premier calls for multilateralism at Davos

    DAVOS,Switzerland,Jan.21(Xinhua)--ChineseVicePremierDingXuexiangdeliveredaspeechatthe...

    用C++ Qt手把手打造炫酷汽车仪表盘

    一、项目背景与核心价值在车载HMI(人机交互界面)开发领域,虚拟仪表盘是智能座舱的核心组件。本项目基于C++Qt框架实现一个具备专业级效果的时速表模块,涵盖以下技术要点:Qt图形绘制核心机制(QPa...

    系列专栏(八):JS的第七种基本类型Symbols

    ES6作为新一代JavaScript标准,已正式与广大前端开发者见面。为了让大家对ES6的诸多新特性有更深入的了解,MozillaWeb开发者博客推出了《ES6InDepth》系列文章。CSDN...

    MFC界面开发工具BCG v31.1 - 增强功能区、工具箱功能

    点击“了解更多”获取工具亲爱的BCGSoft用户,我们非常高兴地宣布BCGControlBarProfessionalforMFC和BCGSuiteforMFCv31.2正式发布!新版本支...

    雅居乐上调出售吉隆坡项目保留金,预计亏损扩大至6.64亿元

    1月2日,雅居乐集团(03383.HK)发布有关出售一家附属公司股权披露交易的补充公告。此前雅居乐集团曾公告,2023年11月8日(交易时段后),集团子公司AgileRealEstateDeve...

    Full text: Address by Vice Premier Ding Xuexiang's at World Economic Forum Annual Meeting 2025

    DAVOS,Switzerland,Jan.21(Xinhua)--ChineseVicePremierDingXuexiangonTuesdaydeliveredasp...

    手机性能好不好 GPU玄学曲线告诉你

    前言各位在看测试者对手机进行评测时或许会见过“安卓玄学曲线”,所谓中的安卓玄学曲线真名为“ProfileGPURendering”。大多数情况下,在系统“开发者选项中被称为“GPU显示配置文件”或...

    小迈科技 X Hologres:高可用的百亿级广告实时数仓建设

    通过本文,我们将会介绍小迈科技如何通过Hologres搭建高可用的实时数仓。一、业务介绍小迈科技成立于2015年1月,是一家致力以数字化领先为优势,实现业务高质量自增长的移动互联网科技公司。始...

    vue3新特征和所有的属性,方法汇总及其对应源码分析

    vue3新特征汇总与源码分析(备注:vue3使用typescript编写)何为应用?constapp=Vue.createApp({})app就是一个应用。应用的配置和应用的API就是app应用...

    China's stability redefines global trade in a volatile era

    ContainersareunloadedatQingdaoPort,eastChina'sShandongProvince,December10,2024.[Photo/X...

    QML 实现图片帧渐隐渐显轮播

    前言所谓图片帧渐隐渐显轮播就是,一组图片列表,当前图片逐渐改变透明度隐藏,同时下一张图片逐渐改变透明度显示,依次循环,达到渐隐渐显的效果,该效果常用于图片展示,相比左右自动切换的轮播方式来说,这种方式...

    前端惊魂夜:我竟在CSS里写出了JavaScript?

    凌晨两点,写字楼里只剩下我工位上的一盏孤灯。咖啡杯见底,屏幕的光映在疲惫的眼镜片上。为了实现一个极其复杂的动态渐变效果,我翻遍了MDN文档,试遍了所有已知的CSS技巧,却始终差那么一口气。“要是CSS...

    10 个派上用场的 Flutter 小部件

    尝试学习一门新语言可能会令人恐惧和厌烦。很多时候,我们希望我们知道早先存在的某些功能。在今天的文章中,我将告诉你我希望早点知道的最方便的颤振小部件。SpacerSpacer创建一个可调整的空白空...

    让我的 Flutter 代码整洁 10 倍的 5 种

    如果你曾在Flutter中使用过SingleTickerProviderStateMixin来制作动画,猜猜怎么着?你已经使用过Mixin了——恭喜你,你已经处于一段你甚至不知道的关...

    daisyUI - 主题漂亮、代码纯净!免费开源的 Tailwind CSS 组件库

    漂亮有特色的CSS组件库,组件代码非常简洁,也支持深度定制主题、定制组件,可以搭配Vue/React等框架使用。关于daisyUIdaisyUI是一款极为流行的CSSUI组件库,...