首页 > php教程 > php手册 > 正文

javascript滚动条之ScrollBar.js

php中文网
发布: 2016-06-07 11:36:33
原创
2056人浏览过

ScrollBar.js是一个仅仅120行的滚动条JS插件,使用非常方便
详情阅读:https://git.oschina.net/wuquanyao/scrollbar.js
/*=================================<br>  * ScrollBar.js beta<br>  * Author:wuquanyao<br>  * Email:wqynqa@163.com<br>  *=================================*/<br> var ScrollBar = {};<br> (function(ScrollBar){<br>     var parent,root,track,bar,tx,ch,h,sh,rate;<br>     ScrollBar.adapter = function(config)<br>     {<br>         init(config);<br>     }<br>     function init(config)<br>     {<br>         parent = document.querySelector(config['selector']);<br>         root   = parent.parentNode;<br>         createBar();<br>         mouseaction();<br>     }<br>     function createBar()<br>     {<br>         track = document.createElement('div');<br>         track.setAttribute('class','scroll-track');<br>         bar   = document.createElement('div');<br>         bar.setAttribute('class','scroll-bar');<br>         track.appendChild(bar);<br>         root.appendChild(track);<br>         sh = root.scrollHeight;<br>         ch = root.offsetHeight;<br>         tx = root.offsetTop;<br>         h  = ch/sh*ch;<br>         if(h             bar.style.height = '30px';<br>             h = 30;<br>         }else{<br>             bar.style.height = h+'px';<br>         }<br>         rate = (sh-ch)/(ch-h);<br>     }<br>     function mouseaction()<br>     {<br>         function eventparse(obj,type,func){<br>             if(document.attachEvent){<br>                 var events = {<br>                     click:'onclick',<br>                     mouseover:'onmouseover',<br>                     mousemove:'onmousemove',<br>                     mouseout:'onmouseout',<br>                     mousedown:'onmousedown',<br>                     mouseup:'onmouseup',<br>                     wheel:'DOMMouseScroll'<br>                 };<br>                 obj.attachEvent(events[type],func);<br>             }else{<br>                 var events = {<br>                     click:'click',<br>                     mouseover:'mouseover',<br>                     mousemove:'mousemove',<br>                     mouseout:'mouseout',<br>                     mousedown:'mousedown',<br>                     mouseup:'mouseup',<br>                     wheel:'DOMMouseScroll'<br>                 };<br>                 obj.addEventListener(events[type],func,false);<br>             }<br>         }<br>         <br>         function init(){<br>             var bool = false,v;<br>             eventparse(bar,'mousedown',function(event){<br>                 bool  = true;<br>             });            <br>             eventparse(document,'mousemove',function(event){<br>                 if(bool){<br>                     if(event.clientY                         v = 0;<br>                     }else if(event.clientY&gt;=(tx+ch-h)){<br>                         v = tx+ch-h;<br>                     }else{<br>                         v = event.clientY;<br>                     }<br>                     parent.style.transform = 'translate(0px,'+(-v*rate)+'px)'; <br>                     bar.style.transform = 'translateY('+v+'px)';<br>                 }<br>             });<br>             eventparse(document,'mouseup',function(event){ <br>                 bool = false;<br>             });<br>             // eventparse(track,'click',function(event){<br>             //     event.stopPropagation();<br>             //     bar.style.transition = 'all 0ms ease 0ms';<br>             //     if(event.clientY             //         bar.style.transform = 'translate(0px,0px)';<br>             //     }else if(event.clientY&gt;=(tx+ch-h)){<br>             //         bar.style.transform = 'translate(0px,'+(tx+ch-h)+'px)';<br>             //     }else{<br>             //         bar.style.transform = 'translate(0px,'+(event.clientY-h/2)+'px)';<br>             //     }<br>             //     parent.style.transform = 'translate(0px,'+((-event.clientY+tx)*rate)+'px)'; <br>             // });<br>             var offset=0;<br>             if (window.navigator.userAgent.indexOf("Firefox") &gt;= 0) {<br>                 eventparse(parent,'wheel',wheelEvent);    <br>             }else{<br>                 parent.onmousewheel=parent.onmousewheel=wheelEvent;<br>             }<br><br>             function wheelEvent(e){<br>                 var transform,bO,wv = (e.detail/3*20) || (-(e.wheelDelta/120*20));<br>                 if((offset=0))){<br>                     transform = 'translate(0px,'+(-offset)+'px)'; <br>                     bO = 'translateY('+(offset/rate)+'px)';<br>                     offset = ((offset+wv)&gt;(sh-ch))?offset:( ((offset+wv)                 }<br>                 bar.style.transform = bO;<br>                 parent.style.transform = transform; <br>             }<br>         }<br>         init();<br>     }<br> })(ScrollBar);

AD:真正免费,域名+虚机+企业邮箱=0元

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号