这个插件做什么呢?那么,它可以让你定义一个自定义的路径滚动时上下跟随窗口,你也可以抛出旋转到组合。你画与工作完全一样的帆布方法绘制直线和圆弧的方法路径。
为了使它很容易看到你的路径磨磨蹭蹭,我已经添加了一个选项,以显示一个覆盖帆布的路径。启用此同时您建立您的网站,你应该有塑造路径正是你想要的方式没有问题。
=============以下内容由 ⚡轰隆隆☂ 提供=================
在滚动路径的时候我们还可以结合使用css来进行变换,使页面可以发生丰富的变换效果。在旧浏览器中,是不支持css3变换效果,那所有的旋转切换将会忽略不计,但仍然遵循自定义的路径。
使用方法
引入核心文件,jquery.easing.js不必须的,只为增添动画效果。
<script type="text/javascript" src="http://libs.useso.com/js/jquery/2.1.1/jquery.min.js"></script> <script type="text/javascript" src="script/lib/jquery.easing.js"></script> <script type="text/javascript" src="script/jquery.scrollpath.js"></script>
写入html,导航也滚动内容分开写,但需要有相对应的ID
<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="http://www.jqcool.net/">jQ酷</a>,是一个专门分享各类jquery插件,并提供详细的jquery插件实例教程、在线预览的网站,目的让站长们更快更轻松的丰富前端效果。本站宗旨:愉快分享,轻松jQ,快速开发!"</span> </div> </div>
写入JS,初始化插件
$(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 (http://gsgd.co.uk/sandbox/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' ); }