这个插件做什么呢?那么,它可以让你定义一个自定义的路径滚动时上下跟随窗口,你也可以抛出旋转到组合。你画与工作完全一样的帆布方法绘制直线和圆弧的方法路径。
为了使它很容易看到你的路径磨磨蹭蹭,我已经添加了一个选项,以显示一个覆盖帆布的路径。启用此同时您建立您的网站,你应该有塑造路径正是你想要的方式没有问题。
=============以下内容由 ⚡轰隆隆☂ 提供=================
在滚动路径的时候我们还可以结合使用css来进行变换,使页面可以发生丰富的变换效果。在旧浏览器中,是不支持css3变换效果,那所有的旋转切换将会忽略不计,但仍然遵循自定义的路径。
使用方法
引入核心文件,jquery.easing.js不必须的,只为增添动画效果。
1 2 3 | < script type = "text/javascript" src = "script/lib/jquery.easing.js" ></ script > < script type = "text/javascript" src = "script/jquery.scrollpath.js" ></ script > |
写入html,导航也滚动内容分开写,但需要有相对应的ID
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | < nav > < ul > < li >< a href = "#start" >1</ a ></ li > < li >< a href = "#description" >2</ a ></ li > < li >< a href = "#syntax" >3</ a ></ li > < li >< a href = "#scrollbar" >4</ a ></ li > < li >< a href = "#rotations" >5</ a ></ li > < li >< a href = "#rotations-rotated" >6</ a ></ li > < li >< a href = "#source" >7</ a ></ li > < li >< a href = "#follow" >8</ a ></ li > </ ul > </ nav > < div class = "wrapper" > < div class = "demo" > < h1 >jQuery Scroll Path</ h1 > < span class = "arrow" >↓</ span > 向下滚动演示 < span class = "arrow" >↓</ span > </ div > < div class = "description" > < span class = "big" >这是一个自定义滚动路径的插件。</ span > </ div > < div class = "syntax" > < span class = "big" >它是通过使用canvas来绘制曲线和弧线。</ span > </ div > < div class = "scrollbar" > < span class = "big" >它自带了一个自定义的滚动条。</ span > </ div > < div class = "rotations" > < span class = "big" >同时,它也可以旋转,</ span > < span class = "upside-down big" >但需要浏览器的支持。</ span > </ div > < div class = "source" > < span class = "big" >除了可以用鼠标滚轮上下滚动,还可以用空格键进行较快的滚动。< span > </ div > < div class = "follow" > < span class = "big" >< a href = "/" >jQ酷</ a >,是一个专门分享各类jquery插件,并提供详细的jquery插件实例教程、在线预览的网站,目的让站长们更快更轻松的丰富前端效果。本站宗旨:愉快分享,轻松jQ,快速开发!"</ span > </ div > </ div > |
写入JS,初始化插件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | $(document).ready(init); function init() { /* ========== DRAWING THE PATH AND INITIATING THE PLUGIN ============= */ $.fn.scrollPath( "getPath" ) // 移到 'start' 元素 .moveTo(400, 50, {name: "start" }) // 写路径到 'description' 元素 .lineTo(400, 800, {name: "description" }) // 弧度和写路径到 'syntax' .arc(200, 1200, 400, -Math.PI/2, Math.PI/2, true ) .lineTo(600, 1600, { callback: function () { highlight($( ".settings" )); }, name: "syntax" }) // 继续写路径到 'scrollbar' .lineTo(1750, 1600, { callback: function () { highlight($( ".sp-scroll-handle" )); }, name: "scrollbar" }) // 画弧,然后旋转 .arc(1800, 1000, 600, Math.PI/2, 0, true , {rotate: Math.PI/2 }) //写路径到 'rotations' .lineTo(2400, 750, { name: "rotations" }) // 旋转到位 .rotate(3*Math.PI/2, { name: "rotations-rotated" }) // 继续画路径到 'source' .lineTo(2400, -700, { name: "source" }) // 向下的小弧 .arc(2250, -700, 150, 0, -Math.PI/2, true ) //写路径到 'follow' .lineTo(1350, -850, { name: "follow" }) // 画弧与旋转返回开始 .arc(1300, 50, 900, -Math.PI/2, -Math.PI, true , {rotate: Math.PI*2, name: "end" }); //上面完成了路径的设置, 接下来实始化到 wrapper 元素上 $( ".wrapper" ).scrollPath({drawPath: true , wrapAround: true }); // 给导航链接加上点击滚动事件 $( "nav" ).find( "a" ).each( function () { var target = $( this ).attr( "href" ).replace( "#" , "" ); $( this ).click( function (e) { e.preventDefault(); //引入 jQuery easing (/) // 使用 easing functions 如下 $.fn.scrollPath( "scrollTo" , target, 1000, "easeInOutSine" ); }); }); /* ===================================================================== */ $( ".settings .show-path" ).click( function (e) { e.preventDefault(); $( ".sp-canvas" ).toggle(); }).toggle( function () { $( this ).text( "隐藏路径" ); }, function () { $( this ).text( "显示路径" ); }); $( ".tweet" ).click( function (e) { open( this .href, "" , "width=550, height=450" ); e.preventDefault(); }); } function highlight(element) { if (!element.hasClass( "highlight" )) { element.addClass( "highlight" ); setTimeout( function () { element.removeClass( "highlight" ); }, 2000); } } function ordinal(num) { return num + ( (num % 10 == 1 && num % 100 != 11) ? 'st' : (num % 10 == 2 && num % 100 != 12) ? 'nd' : (num % 10 == 3 && num % 100 != 13) ? 'rd' : 'th' ); } |
特别申明:
本站所有资源都是由网友投稿发布,或转载各大下载站,请自行检测软件的完整性!
本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!
如有侵权请联系我们删除下架,联系方式:lei1294551502@163.com