zoukankan      html  css  js  c++  java
  • 每天一个JS 小demo之自定义滚动条。主要知识点:事件应用

    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
    body {
    margin: 0;
    }
    #wrap {
    margin: 30px auto;
    position: relative;
    border: 1px solid #000;
    500px;
    padding: 0 20px;
    height: 400px;
    overflow: hidden;
    }
    #scroll {
    position: absolute;
    left: 20px;
    top: 0;
    500px;
    }
    p {
    font: 14px/30px "宋体";
    }
    #scrollBar {
    position: absolute;
    right: 0;
    top: 0;
    12px;
    height: 100%;
    background: #f1f1f1;
    }
    #bar {
    position: absolute;
    top: 0;
    left: 0;
    12px;
    height: 100px;
    border-radius: 6px;
    background: #000;
    cursor: pointer;
    }
    </style>
    </head>
    <body>
    <div id="wrap">
    <div id="scroll">
    <h2>关于妙味</h2>
    <p>关于妙味妙味课堂是北京妙味趣学信息技术有限公司旗下的IT前端培训品牌,妙味课堂是一支独具特色的IT培训团队,妙味反对传统IT教育枯燥乏味的教学模式,妙味提供一种全新的快乐学习方法!</p>
    <p>目前主要针对的是javascript培训,同时还提供了css教程、javascript视频、js特效等,最新推出了外地学员们喜欢的javascript网络课程服务,同时还为处于javascript入门阶段的朋友录制了大量javascript视频,其中涉及了大量javascript基础知识,希望妙味课堂推出的javascript网络培训课程能带给大家更多惊喜。</p>
    <h2>妙味讲师:</h2>
    <p>妙味课堂的讲师来自中国最具吸引力的IT企业,如人人网、ShopEx等。</p>
    <h3>妙味JS课程高级讲师:钟毅</h3>
    <p>资深PHP程序员,曾独立开发CMS系统。</p>
    <p>对前端开发有极大热情,尤其是在AJAX数据交互方面,</p>
    <p>有着复杂而深入的项目实践经验。</p>
    <p>钟毅为人性情温和、对教学工作有极大的耐心,</p>
    <p>现任妙味课堂JS课程高级讲师。</p>
    <h2>关于妙味</h2>
    <p>关于妙味妙味课堂是北京妙味趣学信息技术有限公司旗下的IT前端培训品牌,妙味课堂是一支独具特色的IT培训团队,妙味反对传统IT教育枯燥乏味的教学模式,妙味提供一种全新的快乐学习方法!</p>
    <p>目前主要针对的是javascript培训,同时还提供了css教程、javascript视频、js特效等,最新推出了外地学员们喜欢的javascript网络课程服务,同时还为处于javascript入门阶段的朋友录制了大量javascript视频,其中涉及了大量javascript基础知识,希望妙味课堂推出的javascript网络培训课程能带给大家更多惊喜。</p>
    <h2>妙味讲师:</h2>
    <p>妙味课堂的讲师来自中国最具吸引力的IT企业,如人人网、ShopEx等。</p>
    <h3>妙味JS课程高级讲师:钟毅</h3>
    <p>资深PHP程序员,曾独立开发CMS系统。</p>
    <p>对前端开发有极大热情,尤其是在AJAX数据交互方面,</p>
    <p>有着复杂而深入的项目实践经验。</p>
    <p>钟毅为人性情温和、对教学工作有极大的耐心,</p>
    <p>现任妙味课堂JS课程高级讲师。</p>
    <h2>妙味讲师:</h2>
    <p>妙味课堂的讲师来自中国最具吸引力的IT企业,如人人网、ShopEx等。</p>
    <h3>妙味JS课程高级讲师:钟毅</h3>
    <p>资深PHP程序员,曾独立开发CMS系统。</p>
    <p>对前端开发有极大热情,尤其是在AJAX数据交互方面,</p>
    <p>有着复杂而深入的项目实践经验。</p>
    <p>钟毅为人性情温和、对教学工作有极大的耐心,</p>
    <p>现任妙味课堂JS课程高级讲师。</p>
    <h2>妙味讲师:</h2>
    <p>妙味课堂的讲师来自中国最具吸引力的IT企业,如人人网、ShopEx等。</p>
    <h3>妙味JS课程高级讲师:钟毅</h3>
    <p>资深PHP程序员,曾独立开发CMS系统。</p>
    <p>对前端开发有极大热情,尤其是在AJAX数据交互方面,</p>
    <p>有着复杂而深入的项目实践经验。</p>
    <p>钟毅为人性情温和、对教学工作有极大的耐心,</p>
    <p>现任妙味课堂JS课程高级讲师。</p>
    </div>
    <div id="scrollBar">
    <div id="bar"></div>
    </div>
    </div>
    <div style="height:500px;background:red"></div>
    <script type="text/javascript" src="startmove.js"></script>
    <script type="text/javascript">
    (function(){
    var wrap = document.querySelector('#wrap');
    var scroll = document.querySelector('#scroll');
    var bar = document.querySelector('#bar');

    // 修改滚动条的高度
    var scale = wrap.clientHeight/scroll.offsetHeight;
    css(bar,"height",wrap.clientHeight*scale);

    var maxY = wrap.clientHeight - bar.offsetHeight;
    bar.addEventListener('mousedown', function(e) {
    var elY = css(bar,"top");
    var startY = e.clientY;
    e.preventDefault();
    document.addEventListener('mousemove',move);
    document.addEventListener('mouseup',end);
    function move(e){
    var nowY = e.clientY;
    var y = nowY - startY + elY;
    if(y < 0 ){
    y = 0;
    } else if(y > maxY){
    y = maxY;
    }

    css(bar,"top",y);
    css(scroll,"top",-y/scale);
    }
    function end(){
    document.removeEventListener('mousemove',move);
    document.removeEventListener('mouseup',end);
    }
    });
    mMouseWheel(wrap, function(e){
    var y = css(bar,"top");
    y -= 10;
    if(y < 0 ){
    y = 0;
    }
    css(bar,"top",y);
    css(scroll,"top",-y/scale);
    },function(e){
    var y = css(bar,"top");
    y += 10;
    if(y > maxY){
    y = maxY;
    }
    css(bar,"top",y);
    css(scroll,"top",-y/scale);
    });
    function mMouseWheel(el, toUp,toDown){
    el.addEventListener('DOMMouseScroll', function(e) {
    e.preventDefault();
    mouseScroll(e.detail,e);
    });
    el.addEventListener('mousewheel', function(e) {
    e.preventDefault();
    mouseScroll(-e.wheelDelta,e);
    });
    function mouseScroll(dir,e){
    if(dir > 0){
    toDown(e);
    } else {
    toUp(e);
    }
    }
    }
    })();
    </script>
    </body>
    </html>

  • 相关阅读:
    miniprogramer--ajax
    miniprogram 获取两点之间的距离(经纬度)
    express node-schedule
    express generate xls
    protected default
    Java UUID
    关于轮播图兼容的问题
    关于git上的一些错误信息
    cookie
    关于ajax原理介绍
  • 原文地址:https://www.cnblogs.com/catEatBird/p/7083038.html
Copyright © 2011-2022 走看看