• impress.js 一个创建在线幻灯的js库


      真的好奇怪,我居然会写前端技术的博客。没有办法的,最近实习,看的大多是前端。所以今天就用这个来练练手了。

      Impress.js 是一个非常棒的用来创建在线演示的Javascript库。它基于CSS3转 换和过渡、工作于现代浏览器(Google Chrome、Safari、Firefox 10 或 IE10)、并受prezi.com的理念启发的演示工具。如果你已经厌烦了使用PowerPoint制作PPT,那么impress.js是一个非常 好的选择,用它做的PPT更加直观,效果也非常不错。在线Demo:http://bartaz.github.io/impress.js/#/bored

      下面这个是一个例子:

     1 <!doctype html>
     2 <html>
     3     <head>
     4         <title> Impress Tutorial</title>
     5         <meta http-equiv="Content-Type" content="text/html"; charset=UTF-8">
     6     </head>
     7     <body>
     8         <div id="impress">
     9             <div class="step slide" data-x="0" data-y="0" data-scale="20"> My first slide </div>
    10             <div class="step slide" data-x="1500" data-y="0" data-scale="10"> 2222222222222222222 </div>
    11             <div class="step slide" data-x="500" data-y="-500" data-scale="10" data-rotate-x="20"> 333333333333333333333333 </div>
    12             <div class="step slide" data-x="1500" data-y="-500" data-scale="0.5" data-rotate-x="0.5"> 4444444444444444444444444 </div>
    13         </div>
    14 
    15         <script type="text/javascript" src="impress.js"> </script>
    16         <script> impress().init();</script>
    17     </body>
    18 <html>

      接下来就解释一下了。第15行是导入需要用到的js库,第16行是调用该库的初始化函数。一开始没有写这个,一直调用不成功。第8行的id="impress" 这个是固定的id。里面的div class="step" 也是固定的。这样的关系,就好像impress这个div是一个演示框架,然后每个step对应的div就像是一页一页的幻灯片。虽然我们都是写step,但是在js库中还是会进行编号处理的。这个下面再说。

      对于每一页幻灯片来说,都应该有属性的。

      data-x = 幻灯片的x坐标 (相对与impress这个div来说。整个impress的div是一个画布,中间的坐标是0 , 0 然后各个方向就跟直角坐标系一样定义。)
      data-y = 幻灯片的y坐标
      data-scale = 通过指定一个值来进行缩放,data-scale为5则将会在你幻灯片原始尺寸基础放大5倍(这个有点抽象)
      data-rotate = 通过一个数字度数来确定旋转你的幻灯片
      data-rotate-x = 为3D用,这个数字度数是它应该相对x轴旋转多少度。
      data-rotate-y = 为3D用,这个数字度数是它应该相对y轴旋转多少度。 
      data-rotate-z = 为3D用,这个数字度数是它应该相对z轴旋转多少度。

      data-scale讲解:

      A:data-scale=20   B:data-scale=5    C:data-scale=0.5

      因为我们的幻灯片是一页一页的播放的。假如现在播放A,那么就会以A为一个单位。然后B是会缩小为0.25倍与A。而C就更小了是A的100分之一。我们可以通过键盘的方向健来控制播放的是上一页还是下一页。我们播放B时,如果A的坐标在B的可视范围内的话,是会4倍大于B的。而这次是以B为单位大小。这里就会问,那每次等到播放的那个幻灯片就变成单位大小,那怎么放大显示啊,就是通过简单的css里面的font-size就可以了。

      其实这个库提供的功能不是很多,但是由于运行在页面中,以前做幻灯片的时候没有想过的可以用javascript来控制页面,用css来控制样式,还可以加入各种库,来提高幻灯的开发效率了。现在都可以实现了。这个impress.js最主要的功能就是提供对每个div的编号,还有幻灯的上下页的衔接效果。对于动作效果,前端技术厉害的小伙伴完全可以自己写js的。

      最后一个就是,对于每个step的div来说,内部是有个编码的,这个当你在播放幻灯的时候在网址的后面会成为这样。 http://1.1.1.1/index.html#/step-1  后面的编号就是自己加的。同时对于幻灯的顺序,有了这样编码方式后,我们完全可以通过js控制下一页播放的是哪一页,还有一个就是我们可以通过鼠标进行点击,然后跳转到指点的幻灯页。 

      下面给出一个最简单的例子

     1 <!doctype html>
     2 <html>
     3     <head>
     4         <title> Impress Tutorial</title>
     5         <meta http-equiv="Content-Type" content="text/html"; charset=UTF-8">
     6         <style>
     7 div{
     8 border:1px dashed #000;
     9 font-size: 40px ;
    10 }
    11 a:link{text-decoration:none;}
    12 a:visited{text-decoration:none;}
    13 a:hover{text-decoration:none;}
    14 a:active{text-decoration:none;}
    15         </style>
    16     </head>
    17     <body>
    18         <div id="impress" >
    19             <div class="step slide" data-x="0" data-y="-100" data-scale="1"> 1.<a href="#/step-5">aaaaaaaaa</a><br>2.<a href="#/step-8">bbbbbbbb</a><br>3.<a href="#/step-2">ccccccccc<a><br> </div>
    20             <div class="step slide" data-x="100" data-y="100" data-scale="0.7" data-rotate-x="180" data-rotate-y="180" data-rotate-z="0"> My  slide </div>
    21             <div class="step slide" data-x="200" data-y="200" data-scale="0.5" data-rotate-x="180" data-rotate-y="0" data-rotate-z="180"> My  slide </div>
    22             <div class="step slide" data-x="300" data-y="300" data-scale="0.3" data-rotate-x="0" data-rotate-y="180" data-rotate-z="180"> My  slide <a href="#/step-1">BACK</a></div>
    23             <div class="step slide" data-x="-100" data-y="100" data-scale="0.7" data-rotate-x="180" data-rotate-y="0" data-rotate-z="180"> My  slide </div>
    24             <div class="step slide" data-x="-200" data-y="200" data-scale="0.5" data-rotate-x="0" data-rotate-y="180" data-rotate-z="180"> My  slide </div>
    25             <div class="step slide" data-x="-300" data-y="300" data-scale="0.3" data-rotate-x=180" data-rotate-y="180" data-rotate-z="0"> My  slide <a href="#/step-1">BACK</a></div>
    26             <div class="step slide" data-x="0" data-y="100" data-scale="0.7" data-rotate-x="0" data-rotate-y="180" data-rotate-z="180"> My  slide </div>
    27             <div class="step slide" data-x="0" data-y="200" data-scale="0.5" data-rotate-x="180" data-rotate-y="180" data-rotate-z="0"> My  slide </div>
    28             <div class="step slide" data-x="0" data-y="300" data-scale="0.3" data-rotate-x="180" data-rotate-y="180" data-rotate-z="0"> My  slide <a href="#/step-1">BACK</a></div>
    29         </div>
    30 
    31         <script type="text/javascript" src="impress.js"> </script>
    32         <script> impress().init();</script>
    33     </body>
    34 <html>

      其他功能的话,可以加上图片,然后用js控制图片的滑动,panel进行画图,jq等外接库。总之就是一个很强大的幻灯演示功能。

      参考资料: 

        http://www.cubewebsites.com/blog/guides/how-to-use-impress-js/ 

        http://www.woiweb.net/impress-js-tutorial.html 

      本文地址: http://www.cnblogs.com/wunaozai/p/4055423.html

  • 相关阅读:
    正则表达式的各种验证方法
    SQL SERVER常用函数
    Eclipse快捷键 10个最有用的快捷键
    jquery中选择器input:hidden和input[type=hidden]的差别
    JQuery 对 Select option 的操作
    非常好用的游戏数据保存类:ScriptableObject
    时间戳转换
    关于手机设备网络类型的判断
    compareTo的使用(实现排序功能)
    AR_Demon(使用vuforia平台提供的钥匙跟后台,实现相机拍图片读取模型以及视频的功能)
  • 原文地址:https://www.cnblogs.com/wunaozai/p/4055423.html
Copyright © 2020-2023  润新知