jQuery制作仿Mac Lion OS滚动条效果

nanoScrollerJS是一款使用简单方式实现 Mac OS X Lion 系统滚动条效果的jQuery插件。该滚动条插件使用最小的HTML结构 .nano > .nano-content 。其它的滚动条元素 .pane > .nano-slider 是在插件运行时动态加载的。该滚动条插件利用原生的滚动条可以工作在 iPad、iPhone 和一些 Android Tablets上。

使用方法

HTML结构

下面是该滚动条插件工作所必须的HTML结构:

代码如下:

<div id="about" class="nano">
    <div class="nano-content"> ... content here ...  </div>
</div>

nano 和 nano-content 的class名称可以通过插件参数来改变(改变后插件的CSS文件也要相应的改变)。

CSS样式

在HTML <header> 中引入 nanoscroller.css 文件。

代码如下:

<link rel="stylesheet" href="nanoscroller.css">

你必须为容器指定一个宽度和高度,并为你的滚动条定制一些基本样式,例如:

代码如下:

.nano { background: #bba; width: 500px; height: 500px; }
.nano > .nano-content { padding: 10px; }
.nano > .nano-pane   { background: #888; }
.nano > .nano-pane > .nano-slider { background: #111; }

JAVASCRIPT

在页面中引入 jquery.nanoscroller.js 文件。

代码如下:

<script type="text/javascript" src="js/jquery.nanoscroller.js"></script>

然后使用下面的方法调用该滚动条插件,HTML中所有带有 .nano 的DOM元素都会被应用上该方法:

代码如下:

$(".nano").nanoScroller();

高级方法

滚动到顶部:

代码如下:

$(".nano").nanoScroller({ scroll: 'top' });

滚动到底部:

代码如下:

$(".nano").nanoScroller({ scroll: 'bottom' });

滚动到顶部并带个偏移值:

代码如下:

$(".nano").nanoScroller({ scrollTop: value });

滚动到底部并带个偏移值:

代码如下:

$(".nano").nanoScroller({ scrollBottom: value });

滚动一个元素:

代码如下:

$(".nano").nanoScroller({ scrollTo: $('#a_node') });

停止滚动操作。这个选项将会使滚动条插件的所有绑定事件无效,并在UI上隐藏滚动条。

代码如下:

$(".nano").nanoScroller({ stop: true });

destroy

销毁nanoScroller滚动条并将滚动条重置为浏览器原生滚动条:

代码如下:

$(".nano").nanoScroller({ destroy: true });

设置滚动条闪动,闪动时间由参数来设置(默认1.5秒)。

代码如下:

$(".nano").nanoScroller({ flash: true });

nanoScroller();

刷新滚动条。该操作会简单的重新计算滚动条的位置和高度:

代码如下:

$(".nano").nanoScroller();

自定义事件

scrollend

一个自定义的 scrollend 事件会在每次滚动条滚动到容器底部时触发。(当滚动条已经到达容器底部,用户再次滚动时不会触发该事件)

代码如下:

$(".nano").bind("scrollend", function(e){
    console.log("current HTMLDivElement", e.currentTarget);
});

有些浏览器会在同一时间多次触发该事件,所以应该使用jQuery .bind 或 .on 来绑定该事件。你可以使用 jquery-debounce 插件来使浏览器每隔100毫秒才触发一次该事件:

代码如下:

$(".nano").debounce("scrollend", function() {
    alert("The end");
}, 100);

scrolltop

和 scrollend 事件相同,它是每次用户滚动到容器的顶部时触发。

和 scrollend 事件和 scrolltop 事件相同,它在用户每次滚动时触发。该事件附带滚动条当前位置、最大高度和方向( up 或 down )的js对象参数:

代码如下:

$(".nano").on("update", function(event, values){
    console.debug( values );
});

配置参数

该滚动条插件中有一组参数可以使用:

iOSNativeScrolling

如果你希望在 iOS 5+ 中使用原生的滚动条,可以设置为 true 。在 iOS 5+ 中原生的滚动条会工作的更好。

注意当 iOSNativeScrolling 设置为 true 时, .pane 和 .slider 不会被设备生成/添加来支持原生的滚动条。

默认值 :false。

代码如下:

$(".nano").nanoScroller({ iOSNativeScrolling: true });

sliderMinHeight

设置滚动元素的最小高度:

默认值 :20。

代码如下:

$(".nano").nanoScroller({ sliderMinHeight: 40 })

sliderMaxHeight

设置滚动元素的最大高度:

默认值 :null。

代码如下:

$(".nano").nanoScroller({ sliderMaxHeight: 200 });

preventPageScrolling

设置为 true 时可以在容器内容滚动到顶部或底部时阻止页面滚动:

默认值 :false。

代码如下:

$(".nano").nanoScroller({ preventPageScrolling: true });

disableResize

设置为 true 阻止nanoscroller改变大小。如果你设置该选项为 true ,记住要调用reset方法,否则会产生奇怪的问题:

默认值 :false。

代码如下:

$(".nano").nanoScroller({ disableResize: true });

alwaysVisible

设置为 true 关闭滚动条停止时自动隐藏功能:

默认值 :false。

代码如下:

$(".nano").nanoScroller({ alwaysVisible: true });

flashDelay

在你开启 flash 选项时,该选项用于指定闪动的延时:

默认值 :1500。

代码如下:

$(".nano").nanoScroller({ flashDelay: 1000 });

paneClass

滚动条track元素的class名称。如果你修改了它,需要在CSS文件中做相应的修改:

默认值 : 'nano-pane'。

代码如下:

$(".nano").nanoScroller({ sliderClass: 'scrollSlider' });

contentClass

滚动条容器div的class名称。如果你修改了它,需要在CSS文件中做相应的修改:

默认值 : 'nano-content'。

代码如下:

$(".nano").nanoScroller({ contentClass: 'sliderContent' });

tabIndex

设置可滚动内容的顺序,设置为-1时使用tab键会跳过该内容:

默认值 :0。

代码如下:

$(".nano").nanoScroller({ tabIndex: 0 });

浏览器兼容

桌面设备

IE7+
Firefox 3+
Chrome
Safari 4+
Opera 11.60+
移动设备

iOS 5+ (iPhone, iPad 和 iPod Touch)
iOS 4 (附带一个插件)
Android Firefox
Android 2.2/2.3 native browser (附带一个插件)
Android Opera 11.6 (附带一个插件)
通过插件在移动设备浏览器更好的运行nanoScroller

你可以通过 overthrow.js 来使nanoScroller 在移动浏览器上更好的工作。它会在移动设备上模拟CSS的overflow( overflow: auto;/overflow: scroll; )。

要使用overthrow,在页面中引入overthrow.js:

代码如下:

<script src="overthrow.js"></script>

然后在你的滚动条内容 div 中添加 overthrow class:

代码如下:

<div id="about" class="nano">
    <div class="overthrow nano-content"> ... content here ...  </div>
</div>

以上就是关于nanoscroller插件的使用方法,希望大家能够喜欢。

(0)

相关推荐

  • JS不能跨域借助jquery获取IP地址的方法

    获取IP地址,JS也可以获取客户端IP地址啦,大家知道JS不能跨域,所以这里借助了jquery,真的可以实现获取IP地址,代码如下,已通过测试: <script language="javascript" src="http://www.jb51.net/jslib/jquery/jquery.js"></script> <script language="javascript"> jQuery(functio

  • jQuery使用CSS()方法给指定元素同时设置多个样式

    本文实例讲述了jQuery使用CSS()方法给指定元素同时设置多个样式的方法.分享给大家供大家参考.具体如下: <!DOCTYPE html> <html> <head> <script src="js/jquery.min.js"> </script> <script> $(document).ready(function(){ $("button").click(function(){ $(

  • 获取客户端电脑日期时间js代码(jquery)

    原生态javascript获取日期 复制代码 代码如下: <SCRIPT LANGUAGE="JavaScript">var myDate = new Date();    myDate.getYear();       //获取当前年份(2位)    myDate.getFullYear();   //获取完整的年份(4位,1970-????)    myDate.getMonth();      //获取当前月份(0-11,0代表1月)    myDate.getDat

  • Jquery 实现table样式的设定

    上一篇我们使用jquery实现checkbox的全选,得到了一些朋友的建议,其中插件的定义我的确不太清楚,也闹了个笑话,有些朋友建议我去看<锋利的Jquery>,说实话正在看了.由于正在学习中,我就想把项目中经常要用的jquery效果自己写成通用方法,可以在大家的帮助下完善这些方法,也可以让不会的了解到一种做法,最后形成自己的Jquery 方法库,方便以后的使用,这些例子都是我自己写的,没有参考,所以有很多地方需要改进. 1:为什么要写这个方法 在项目中,一些table都要设置样式,为了样式的

  • jQuery给多个不同元素添加class样式的方法

    本文实例讲述了jQuery给多个不同元素添加class样式的方法.分享给大家供大家参考.具体分析如下: jQuery可以通过addClass()方法给多个不同的html元素同时添加相同的class <!DOCTYPE html> <html> <head> <script src="js/jquery.min.js"> </script> <script> $(document).ready(function(){

  • jquery解决客户端跨域访问问题

    客户端"跨域访问"一直是一个头疼的问题,好在有jQuery帮忙,从jQuery-1.2以后跨域问题便迎刃而解.由于自己在项目中遇到跨域问题,借此机会对跨域问题来刨根问底,查阅了相关资料和自己的实践,算是解决了跨域问题.便记录下来,以供查阅. jQuery.ajax()支持get方式的跨域,这其实是采用jsonp的方式来完成的. 真实案例: 复制代码 代码如下: $.ajax({             async:false,             url: 'http://www.

  • jQuery根据用户电脑是mac还是pc加载对应样式的方法

    本文实例讲述了jQuery根据用户电脑是mac还是pc加载对应样式的方法.分享给大家供大家参考.具体实现方法如下: if (navigator.userAgent.indexOf('Mac OS X') != -1) { $("body").addClass("mac"); } else { $("body").addClass("pc"); } 希望本文所述对大家的jQuery程序设计有所帮助.

  • jQuery使用addClass()方法给元素添加多个class样式

    本文实例讲述了jQuery使用addClass()方法给元素添加多个class样式的方法.分享给大家供大家参考.具体如下: jQuery通过addClass()方法给元素添加多个class,只需要在添加的class中用空格分开多个class既可 <!DOCTYPE html> <html> <head> <script src="js/jquery.min.js"> </script> <script> $(doc

  • js/jquery判断浏览器类型的方法小结

    JS获取浏览器信息 复制代码 代码如下: 浏览器代码名称:navigator.appCodeName 浏览器名称:navigator.appName 浏览器版本号:navigator.appVersion 对Java的支持:navigator.javaEnabled() MIME类型(数组):navigator.mimeTypes 系统平台:navigator.platform 插件(数组):navigator.plugins 用户代理:navigator.userAgent js判断IE浏览器

  • jQuery制作仿Mac Lion OS滚动条效果

    nanoScrollerJS是一款使用简单方式实现 Mac OS X Lion 系统滚动条效果的jQuery插件.该滚动条插件使用最小的HTML结构 .nano > .nano-content .其它的滚动条元素 .pane > .nano-slider 是在插件运行时动态加载的.该滚动条插件利用原生的滚动条可以工作在 iPad.iPhone 和一些 Android Tablets上. 使用方法 HTML结构 下面是该滚动条插件工作所必须的HTML结构: 复制代码 代码如下: <div

  • jQuery实现仿QQ在线客服效果的滚动层代码

    本文实例讲述了jQuery实现仿QQ在线客服效果的滚动层代码.分享给大家供大家参考.具体如下: 这是一款jQuery滚动层,可以做成仿QQ在线客服,虽然效果有点生硬,但水平就这么高了,弹出层是挺实用的,期待大家有新的改进. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/jquery-f-qq-online-style-scroll-style-demo/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD

  • 基于jQuery实现仿百度首页选项卡切换效果

    以下代码比较简单,所以没给大家附太多的注释,有问题欢迎给我留言,具体详情请看下文代码吧. 先给大家展示下效果图: 代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery仿百度首页选项卡切换效果 - 何问起</title&

  • jQuery制作仿腾讯web qq用户体验桌面

    jquery ui制作仿腾讯web qq用户界面,酷炫个性的desktop桌面特效展示支持各大主流浏览器IE6以上.jQuery用户体验设计,web qq桌面十分动感酷炫. 查看演示: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <

  • 简单易用的基于jQuery版仿新浪微博向下滚动效果(附DEMO)

    简单易用的jQuery 写的仿新浪微博 向下滚动效果 $(function(){ var scrtime; $("#con").hover(function(){ clearInterval(scrtime); },function(){ scrtime = setInterval(function(){ var $ul = $("#con ul"); var liHeight = $ul.find("li:last").height(); $u

  • Android App中制作仿MIUI的Tab切换效果的实例分享

    1.概述 哈,今天给大家带来一个ViewPagerIndicator的制作,相信大家在做tabIndicator的时候,大多数人都用过TabPageIndicator,并且很多知名APP都使用过这个开源的指示器.大家有没有想过如何自己去实现这样的一个指示器,并且代码会有多复杂呢~~~今天,我就带领大家来从无到有的实现这样一个指示器,当然了,不准备一模一样,搞得没有创新似的,再看标题,跟MIUI相关,所以我们准备做一个特性与TabPageIndicator一致的,但是样子和MIUI的Tab一样的~

  • 基于Jquery制作图片文字排版预览效果附源码下载

    基于jQuery图文排版图片预览特效.这是一款基于jQuery+CSS3实现的鼠标点击图片弹出画廊切换特效. 效果图如下所示,怎么样感兴趣吗,感兴趣的朋友继续往下学习哦. 效果演示    源码下载 html代码: <div id="fullscreen"> <div id="fullscreen-inner"> <div id="fullscreen-inner-left" class="fullscree

  • jquery制作搜狐快站页面效果示例分享

    复制代码 代码如下: <script type="text/javascript" src="js/jquery-1.8.3.min.js"></script><script type="text/javascript" src="js/jquery-ui-1.10.3.min.js"></script><script type="text/javascript&

  • jQuery制作简洁的图片轮播效果

    演示图: 核心代码: $(document).ready(function(){ var $iBox = $('.imgBox'), $iNum = $('.imgNum'), //缓存优化 indexImg = 1, //初始下标 totalImg = 4, //图片总数量 imgSize = 300, //图片尺寸 宽度 moveTime = 1100, //切换动画时间 setTime = 2500, //中间暂停时间 clc = null; function moveImg(){ if(

  • jQuery制作效果超棒的手风琴折叠菜单

    拉风的jQuery制作的手风琴折叠菜单,效果非常不错!这里是之前版本的改进版,主要是jquery代码改进 演示图: main.js $(function(){ var tmp = null, $title = $('.title'), $con = $('.title > ul'); $title.click(function(){ $(tmp).children('ul').slideUp().end().children('.arrow').removeClass('arrow-up');

随机推荐