自定义滚动条和拖拽

实现自定义滚动条和拖拽滚动效果

<div class="dropDownMenu">
    <ul>
            <li><a href="#">平缝机</a></li>
            <li><a href="#">包缝机</a></li>
            <li><a href="#">绷缝机</a></li>
            <li><a href="#">平头锁眼机</a></li>
            <li><a href="#">钉扣机</a></li>
            <li><a href="#">套结机</a></li>
            <li><a href="#">链缝机</a></li>
            <li><a href="#">开袋机</a></li>
            <li><a href="#">暗缝机</a></li>
            <li><a href="#">敲扣机</a></li>
            <li><a href="#">全自动模板缝纫机</a></li>
    </ul>
    <div class="dragFrame">
        <div class="dragDiv"></div>
    </div>
</div>

        *{
            margin: 0;
            padding: 0;
            font-size: 12px;
        }
        .dropDownMenu{
            width: 128px;
            height: 224px;
            border: 1px solid #4f75cc;
            position: relative;
            overflow: hidden;
            border-top: none;
        }
        .dropDownMenu ul{
            position: absolute;
            top: 0;
            left: 0;
            width: 118px;
        }
        .dropDownMenu .dragFrame{
            position: absolute;
            right:0;
            top: 0;
               width: 9px;
               border: 1px solid #4f75cc;
               height: 224px;
               border-right: none;
               border-top: none;
        }
        .dropDownMenu .dragFrame .dragDiv{
            position: absolute;
            top: 0;
            right: 0;
            width: 9px;
            height:170px;
            background-color: #4f75cc;
            cursor: pointer;
        }
        .dropDownMenu ul li a{
            display: block;
            background-color: #fff;
            color: #666;
            line-height: 28px;
            width: 118px;
            text-align: center;
        }
        .dropDownMenu ul li a:hover{
            background-color: #d9dde4;
        }

CSS

<script type="text/javascript">
        window.onload = function(){
            var boxHeight = $(".dropDownMenu").height();
            var contentHeight = $(".dropDownMenu ul").height();
            var dropMenu=$(".deviceType");
            var dropDownMenu=$(".dropDownMenu");
            var dropBar = $(".dragFrame .dragDiv")

            var bili = contentHeight / boxHeight;
            var minTop = contentHeight - boxHeight;

            //决定滑块到底有多高。滑块的高度,就是盒子高除以比例:
            dropBar.css("height",boxHeight / bili);

            var nowtop = 0;
            //用户拖拽滑块的时候
            dropBar.draggable({
                "containment" : "parent" ,
                drag : function(event,ui){
                    //拖拽的时候发生的事情
                    var y = ui.position.top;
                    nowtop = -bili * y;
                    dropDownMenu.find("ul").css("top",nowtop);
                }
            });

            // 用户滚动滚轮的时候的事情
            dropDownMenu.mousewheel(function(event,delta){
                // 下面语句的意思,就是用户在box范围内滚动滚轮,就
                // 阻止页面的默认滚动
                event.preventDefault();
                nowtop = nowtop + 20 * delta;
                // 验收
                if(nowtop > 0 ){
                    nowtop = 0;
                }else if(nowtop < -minTop){
                    nowtop = -minTop;
                }
                dropDownMenu.find("ul").css("top",nowtop);
                dropBar.css("top",-nowtop / bili);
            });
        }
    </script>

<script type="text/javascript" src="js/jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui.min.js"></script>
<script type="text/javascript" src="js/jquery.mousewheel.js"></script>

需要这三个插件

时间: 2024-11-05 11:28:30

自定义滚动条和拖拽的相关文章

使用knockout-sortable实现对自定义菜单的拖拽排序

在开始之前,照例,我们先看效果和功能实现. 关于自定义菜单的实现,这里就不多说了,需要了解的请访问:http://www.cnblogs.com/codelove/p/4838766.html 这里需要说明的是排序的实现. 我们先来看看关键的页面代码: <div class="row"> <div class="col-lg-12 full-width" id="leftMenus"> <div class=&quo

View拖拽 自定义绑定view拖拽的工具类

由于工作需求,需要用到这种处理方法所以我就写了这个 废话不多说先看效果图 接下来就看代码吧 DragDropManager import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.graphics.PixelFormat; import android.util.Log; import android.view.Gravity; impo

QT笔记之自定义窗口拖拽移动

1.QT自定义标题栏,拖拽标题栏移动窗口(只能拖拽标题,其他位置无法拖拽) 方法一: 转载:http://blog.sina.com.cn/s/blog_4ba5b45e0102e83h.html .h文件中 1 //自己重新实现拖动操作 2 protected: 3 4 void mouseMoveEvent ( QMouseEvent * event ); 5 6 void mousePressEvent ( QMouseEvent * event ); 7 8 void mouseRele

自定义导航器中的拖拽定义

有时候需要对导航器中的拖拽对象进行赋值,使用的场景是,拖拽导航器中的某个文件或者类或方法等,到某个编辑器中,,因为默认的导航器所配备的拖拽动作,或则不能满足我们的需要,所有,有必要自定义,,拖拽器,,在哪里定义?就在如下的类方法中. 参考类com.langsotech.studio.navigator.base.views.JCommonViewer中的方法@Overrideprotected void initDragAndDrop() {  /* Handle Drag and Drop *

iPhone手机解锁效果&amp;&amp;自定义滚动条&amp;&amp;拖拽--Clone&amp;&amp;窗口拖拽(改变大小/最小化/最大化/还原/关闭)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

拖拽+自定义滚动条

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>拖拽+滚动条</title> <meta name="description" content

拖拽和自定义播放器

今天用到了拖拽,这个是在h5中的,拖拽其实拖得是标签,把标签当做一个全局变量,你想拖到哪儿就拖到哪儿,我们知道的标签中的img是默认支持拖拽的,所以不要设置属性,但其他的就要设置一个属性才能实现拖拽: 必须要有draggable=true才能实现. 拖拽一般是结合js使用的,光听意思就知道拖拽是动作了,它有几个注册事件: 1:开始拖拽时,是开始拖拽是的状态: 2:有开始就有结束: 他们两个其实很好记,就一个单词不一样,一个是start一个end,他们本身的意思就是一个开始一个结束的意思. 一般标

完美拖拽 &amp;&amp;仿腾讯微博效果&amp;&amp; 自定义多级右键菜单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

IOS UIWebView去掉滚动条和黑色背景即拖拽后的上下阴影

隐藏滚动条和上下滚动时出边界的后面的黑色的背景 webView.backgroundColor=[UIColor clearColor]; for (UIView *aView in [webView subviews]) { if ([aView isKindOfClass:[UIScrollView class]]) { [(UIScrollView *)aView setShowsVerticalScrollIndicator:NO]; //右侧的滚动条 (水平的类似) for (UIVi