<font size="3"> 简要教程</font><br><font size="3"> 这是一款基于HTML5 SVG制作的路径过渡动画幻灯片特效。该幻灯片特效使用SVG路径来剪裁幻灯片中的图片,制作出幻灯片切换时不规则的图形变换效果。</font><br><br> <div align="center"><img id="_aimg_29322" aid="29322" zoomfile="data/attachment/forum/201508/31/093640p1rdawdmba5q9c5g.jpg" src="data/attachment/forum/201508/31/093640p1rdawdmba5q9c5g.jpg" class="zoom" onclick="zoom(this, this.src, 0, 0, 0)" style="max-width:90%" alt="1.jpg" title="1.jpg" w="640"></div> <div align="center"><font size="3"><strong><a href="http://www.htmleaf.com/Demo/201508282488.html" target="_blank"><font color="#0000ff">查看演示</font></a> <a href="http://down.htmleaf.com/1508/201508281559.zip" target="_blank"><font color="#0000ff">下载插件</font></a></strong></font></div> <font size="3"><strong> 使用方法</strong></font><br><font size="3"><strong> HTML结构</strong></font><br><font size="3"> 该幻灯片特效的HTML结构由包含幻灯片的无序列表ul.cd-slider和两个作为导航的有序列表元素ul.cd-slider-navigation和ol.cd-slider-controls组成。</font><br><br><font size="3"> 在ul.cd-slider元素中列表项由一个SVG<clippath> </clippath></font><font size="3">元素(用于改变图片的裁剪区域)和一个<image></image></font><font size="3">元素组成。</font><br> <div class="blockcode"> <div id="code_cJ5"> <ol> <li> <div class="cd-slider-wrapper"> <br> <li> <ul class="cd-slider" data-step1="M1402,800h-2V0.6c0-0.3,0-0.3,0-0.6h2v294V800z" data-step2="M1400,800H383L770.7,0.6c0.2-0.3,0.5-0.6,0.9-0.6H1400v294V800z" data-step3="M1400,800H0V0.6C0,0.4,0,0.3,0,0h1400v294V800z" data-step4="M-2,800h2L0,0.6C0,0.3,0,0.3,0,0l-2,0v294V800z" data-step5="M0,800h1017L629.3,0.6c-0.2-0.3-0.5-0.6-0.9-0.6L0,0l0,294L0,800z" data-step6="M0,800h1400V0.6c0-0.2,0-0.3,0-0.6L0,0l0,294L0,800z"> <br> <li> </li> <li class="visible"> <br> </li> <li> <div class="cd-svg-wrapper"> <br> <li> <svg viewbox="0 0 1400 800"><br> <li> <title>Aimated SVG</title> <br> </li> <li> <defs><br> <li> <clippath id="cd-image-1"><br> <li> <path id="cd-changing-path-1" d="M1400,800H0V0.6C0,0.4,0,0.3,0,0h1400v294V800z"></path><br> </li> <li> </li></clippath><br> </li> <li> </li></defs><br> </li> <li> <br> </li> <li> <image height="800px" width="1400px" clip-path="url(#cd-image-1)" xlink:href="img/img-1.jpg"></image><br> </li> <li> </li></svg><br> </li> <li> </li> </div> <!-- .cd-svg-wrapper --><br> </li> <li> </li> <br> <li> <br> </li> <li> </li> <li> <br> </li> <li> <div class="cd-svg-wrapper"> <br> <li> <svg viewbox="0 0 1400 800"><br> <li> <!-- svg content here --><br> </li> <li> </li></svg><br> </li> <li> </li> </div> <!-- .cd-svg-wrapper --><br> </li> <li> </li> <br> <li> <br> </li> <li> <!-- other list items here --><br> </li> <li> <br> </li> <li> </li> </ul> <!-- .cd-slider --><br> </li> <li> <br> </li> <li> <ul class="cd-slider-navigation"> <br> <li> </li> <li><a href="#0" class="next-slide">Next</a></li> <br> <li> </li> <li><a href="#0" class="prev-slide">Prev</a></li> <br> <li> </li> </ul> <!-- .cd-slider-navigation --><br> </li> <li> <br> </li> <li> <ol class="cd-slider-controls"> <br> <li> </li> <li class="selected"><a href="#0"><em>Item 1</em></a></li> <br> <li> </li> <li><a href="#0"><em>Item 2</em></a></li> <br> <li> <!-- other list items here --><br> </li> <li> </li> </ol> <!-- .cd-slider-controls --><br> </li> <li> </div> <!-- .cd-slider-wrapper --> </li> </ol> </div> <em onclick="copycode($('code_cJ5'));">复制代码</em> </div> <br><font size="3"> <strong>CSS样式</strong></font><br><font size="3"> 所有的幻灯片slide都设置透明度为0,使用绝对定位,使它们逐个堆叠在一起(使用top: 0 和 left:0)。当前被选择的幻灯片会被添加.visible class使其变为可见。在剪裁动画被执行的时候,列表项会被添加.is-animating class。</font><br><br><font size="3"> 注意,特效中使用了Padding Hack来使SVG具有响应式效果(在IE中如果你不明确指定SVG的高度,它会被设置为150px)。在特效中设置div.cd-svg-wrapper的高度为0,padding-bottom为57.15%(为了保持SVG的比例,这里是800/1400),并设置SVG 的宽度和高度为100%。</font><br> <div class="blockcode"> <div id="code_CPC"> <ol> <li>.cd-slider > li.visible {<br> </li> <li> position: relative;<br> </li> <li> z-index: 2;<br> </li> <li> opacity: 1;<br> </li> <li>}<br> </li> <li>.cd-slider > li.is-animating {<br> </li> <li> z-index: 3;<br> </li> <li> opacity: 1;<br> </li> <li>}<br> </li> <li>.cd-slider .cd-svg-wrapper {<br> </li> <li> /* using padding Hack to fix bug on IE - svg height not properly calculated */<br> </li> <li> height: 0;<br> </li> <li> padding-bottom: 57.15%;<br> </li> <li>}<br> </li> <li>.cd-slider svg {<br> </li> <li> position: absolute;<br> </li> <li> top: 0;<br> </li> <li> left: 0;<br> </li> <li> width: 100%;<br> </li> <li> height: 100%;<br> </li> <li>} </li> </ol> </div> <em onclick="copycode($('code_CPC'));">复制代码</em> </div> <br><font size="3"> <strong> JAVASCRIPT</strong></font><br><font size="3"> 为了制作幻灯片图片剪裁区域动画,特效中动画<clippath></clippath></font><font size="3">中的<path>元素的d属性。</path></font><br><br><font size="3"> 这里执行动画的步骤和基于SVG图形变换的全屏幻灯片特效中是相同的,不同的是这里只需要执行6个步骤:3个步骤从当前幻灯片变换到下一个幻灯片,以及3个步骤从前一个幻灯片变换会当前幻灯片。</font><font size="3"><br></font><br><font size="3"> 当路径定义完成后,特效中在.cd-slider元素上添加data-stepn属性,它等于d属性中定义的路径。</font><br><br><font size="3"> 特效中使用Snap.svg的animate()方法来制作SVG路径动画</font><br> <div class="blockcode"> <div id="code_XRm"> <ol> <li>clipPath.attr('d', path1).animate({'d': path2}, duration, firstCustomMinaAnimation, function(){<br> </li> <li> clipPath.animate({'d': path3}, duration, secondCustomMinaAnimation, function(){<br> </li> <li> oldSlide.removeClass('visible');<br> </li> <li> newSlide.addClass('visible').removeClass('is-animating');<br> </li> <li> });<br> </li> <li>}); </li> </ol> </div> <em onclick="copycode($('code_XRm'));">复制代码</em> </div> <br><font size="3"> 另外,这个幻灯片特效可以使用移动触摸或键盘来控制幻灯片的切换。</font><font size="3"><br></font><br><font size="3"> 如果你喜欢这个插件,那么你可能也喜欢:</font><br><br><font size="3"> <a href="http://www.html5cn.org/%E5%B8%A638%E7%A7%8D%E5%8A%A8%E7%94%BB%E8%BF%87%E6%B8%A1%E6%95%88%E6%9E%9C%E7%9A%84%E7%82%AB%E9%85%B7jQuery%E5%B9%BB%E7%81%AF%E7%89%87%E6%8F%92%E4%BB%B6" target="_blank"><font color="#0000ff">带38种动画过渡效果的炫酷jQuery幻灯片插件</font></a></font><br><br><font size="3"> <a href="http://www.html5cn.org/article-8667-1.html" target="_blank"><font color="#0000ff">基于SVG图形变换的全屏幻灯片特效</font></a></font><br><br><font size="2"><font color="#808080"> 本文版权属于jQuery之家,转载请注明出处:<a href="http://www.htmleaf.com/html5/SVG/201508282487.html" target="_blank">http://www.htmleaf.com/html5/SVG/201508282487.html</a></font></font><br><br>