iPresenter是一款效果非常炫酷的jQuery和CSS3 3D旋转幻灯片特效插件。你可以使用它来制作产品展示、图片画廊或者各种幻灯片和轮播图特效。这款幻灯片插件的特点有:
- 兼容jQuery。
- 高度灵活和可定制性。
- 灵活的用户界面的设计。
- 在单个HTML页面中允许存在多个实例。
- 可以定制每一个slider的easing效果。
- 多语言支持。
- 可以在 iOS 和 Android 上正常工作。
- 可以选择自动播放模式下鼠标悬停时停止播放幻灯片。
- 非常容易调整尺寸。
- 兼容外部字体(如谷歌字体)。
- 有预加载进度条显示。
- 支持键盘控制。
- 支持移动触摸屏。
- 可以通过CSS来自定义样式。
- 使用配置简单易用。
- 不限制transition效果。
- 可定制transition配置和transition timing函数(easing)。
- 可以使用Cubic-bezier函数。
- 可定制每一个幻灯片的时间。
- 带tooltip缩略图显示。
- 可以通过缩略图或圆点导航按钮来导航。
- 可以在所有支持CSS3的现代浏览器中工作。
使用方法
HTML结构
该幻灯片的HTML结构可以使用一个简单的HTML5结构:
<!DOCTYPE html>
<html>
<head>
<title>iPresenter</title> <!-- Google Webfonts and our stylesheet -->
<link rel="stylesheet" href="http://fonts.useso.com/css?family=PT+Sans+Narrow" />
<link rel="stylesheet" href="css/styles.css" />
<link rel="stylesheet" href="css/demo1.css" /> <!-- JavaScript includes -->
<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/ipresenter.encoded.js"></script> <!-- iPresenter script starter Section -->
<script>
$(document).ready(function(){
$('#ipresenter').iPresenter();
});
</script>
</head>
<body> <!-- BEGIN CONTAINER -->
<div class="container"> <!-- BEGIN #ipresenter element container -->
<div id="ipresenter"> <!-- The Slides Will Go Here --> </div>
<!-- END #ipresenter element container --> </div>
<!-- END CONTAINER --> </body>
</html>
通过这个幻灯片插件,我们可以创建各种幻灯片切换时的平滑过渡效果。插件通过为每一个div
设置不同的data
属性,这些data
属性会转换为真正的CSS3动画效果。下面是所有可用的data
属性:
- data-easing:easing timing函数(也可接收cubic-bezier函数)。
- linear
- ease
- ease-in
- ease-out
- ease-in-out
- ease-out-in
- easeInQuad
- easeOutQuad
- easeInOutQuad
- easeInCubic
- easeOutCubic
- easeInOutCubic
- easeInQuart
- easeOutQuart
- easeInOutQuart
- easeInQuint
- easeOutQuint
- easeInOutQuint
- easeInSine
- easeOutSine
- easeInOutSine
- easeInExpo
- easeOutExpo
- easeInOutExpo
- easeInCirc
- easeOutCirc
- easeInOutCirc
- easeInBack
- easeOutBack
- easeInOutBack
- data-pausetime:slide多久才会显示。
- data-x, data-y, data-z:将幻灯片在屏幕3D空间中移动。
- data-rotate, data-rotate-x, data-rotate-y, data-rotate-z:沿指定的轴旋转元素,单位degrees。
- data-scale:放大或缩小幻灯片。
- data-thumbnail:缩略图的url。
示例代码如下:
<!-- The first slide retains its default position. We could omit the data attributes -->
<div id="intro" class="step" data-x="0" data-y="0">
<img src="img/details.png" />
<h2>A phone that sees the world like you do, in 3D</h2>
<p>Now your photos can have as much depth as the moment itself. HTC EVO 3D captures your photos and videos in 3D, plus you can view them without the glasses. The stunning 4.3-inch qHD display gives you crisp websites, vivid images and incredibly fluid videos.</p>
</div> <!-- We are offsetting the second slide, rotating it and making it 1.8 times larger -->
<div id="capture" class="step" data-x="1100" data-y="1200" data-scale="1.8" data-rotate="180" data-easing="easeInOutQuint">
<img src="img/ksp1.png" />
<h2>Capture life in 3D</h2>
<p>HTC EVO 3D allows you to shoot 3D movies and snap 3D photos via dual cameras, so no matter where you are, capture life as it should be. And see it all in true-to-life detail without 3D glasses.</p>
</div> <!-- Same for the rest.. -->
<div id="view" class="step" data-x="-300" data-y="600" data-scale="0.2" data-rotate="270">
<img src="img/ksp2.png" />
<h2>An incredible view</h2>
<p>The large 4.3 inch display serves up incredibly crisp websites, vivid images and fluid video on a pixel-packed qHD screen. Catch the latest blockbusters straight from HTC Watch � a new service that starts the show just seconds into the download and monitors your Internet connection to ensure uninterrupted viewing.</p>
</div>
CSS样式
该幻灯片插件中有两个主要的CSS样式文件,一个是styles.css
,这个样式表用于生成页面的通用样式,如字体、链接等样式。第二个对应每个demo的样式表,分为demo1.css
和demo2.css
,分别用于为两个demo指定样式:
/* === Preloader Section === */ div#ipresenter div#preloader {
some styles
} div#ipresenter div#preloader div {
some styles
} /* === Steps Section === */ div#ipresenter div.step {
some styles
} /* === Control Navigation Section === */ /* = General = */
a.ipresenter_stepsNav {
some styles
} /* = Next Button = */
a#ipresenter_nextStep {
some styles
} /* = Previous Button = */
a#ipresenter_prevStep {
some styles
} /* = Pagination Buttons Container = */
div.ipresenter-controlNav {
some styles
} /* = Pagination Previous Buttons = */
div.ipresenter-controlNav a.ipresenter-controlPrevNav {
some styles
} /* = Pagination Next Button = */
div.ipresenter-controlNav a.ipresenter-controlNextNav {
some styles
} /* = Pagination Number Button = */
div.ipresenter-controlNav a.ipresenter-control {
some styles
} /* = Pagination Tooltip = */
div.ipresenter-controlNav div.ipresenter-tooltip {
some styles
} div.ipresenter-controlNav div.ipresenter-tooltip div {
some styles
} div.ipresenter-controlNav div.ipresenter-tooltip img {
some styles
} /* === Playback === */ /* = General = */
#ipresenter-timer {
some styles
} /* = When its playing = */
#ipresenter-timer.play {
some styles
} /* = When its paused = */
#ipresenter-timer.pause {
some styles
}
下面列出了该幻灯片插件所有可用的参数:
$(document).ready(function(){
$('#ipresenter').iPresenter({
easing: 'ease-in-out', // Easing timing (custom cubic-bezier function is acceptable)
autoPlay: true, // To Enable or Disable the autoplay
replay: true, // To repeat all steps from beginning
animSpeed: 1000, // To set the speed of the switch animation (Microsecond)
pauseTime: 5000, // To set the time of the pause between steps (Microsecond)
directionNav: true, // Next & Previous navigation
directionNavHoverOpacity: 0.6, // Fade on hover
controlNav: true, // 1,2,3,4... navigation
controlNavNextPrev: true, // previous,next navigation
controlNavHoverOpacity: 0.6, // Navigation fade on hover
controlNavThumbs: false, // Show thumbs navigation
controlNavTooltip: true, // Show thumbs Tooltip
keyboardNav: true, // To Enable or Disable the keyboard navigation
pauseOnHover: false, // To Enable or Disable the slideshow when mouse come over it
itemsOpacity: 0.4, // To set the value of the opacity for the steps
randomStart: false, // Start on a random step
startStep: 0, // Set starting Step (0 index)
timer: 'Pie', // Timer style: "Pie", "360Bar" or "Bar"
timerBg: '#000', // Timer background
timerColor: '#EEE', // Timer color
timerOpacity: 0.5, // Timer opacity
timerDiameter: 30, // Timer diameter
timerPadding: 4, // Timer padding
timerStroke: 3, // Timer stroke width
timerBarStroke: 1, // Timer Bar stroke width
timerBarStrokeColor: '#EEE', // Timer Bar stroke color
timerBarStrokeStyle: 'solid', // Timer Bar stroke style
timerPosition: 'top-right', // Timer position (top,middle,bottom)-(left-center-right) set like: 'middle-center'
nextLabel: "Next", // To set the string of the next button (Multilanguage use)
previousLabel: "Previous", // To set the string of the previous button (Multilanguage use)
playLabel: "Play", // To set the string of the play button (Multilanguage use)
pauseLabel: "Pause", // To set the string of the pause button (Multilanguage use)
onBeforeChange: function(){}, // Triggers before a step change
onAfterChange: function(){}, // Triggers after a step change
onLastStep: function(){}, // Triggers when last step is shown
onAfterLoad: function(){}, // Triggers when slider has loaded
onPause: function(){}, // Triggers when slider has paused
onPlay: function(){} // Triggers when slider has played
});
});