Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用纯JavaScript和CSS的自定义滚动条_Javascript_Jquery_Css_Scroll_Scrollbar - Fatal编程技术网

使用纯JavaScript和CSS的自定义滚动条

使用纯JavaScript和CSS的自定义滚动条,javascript,jquery,css,scroll,scrollbar,Javascript,Jquery,Css,Scroll,Scrollbar,我想用纯CSS3和JS创建一个定制的滚动条。这应该使用div元素来完成。请避免使用插件和溢出滚动条。 内容div可以包含任何元素,如p、ul或image 我知道如何使用偏移值移动元素。你对如何创建这样一个滚动条有什么想法吗?我知道你说没有插件,但你可能想看看本页显示的小功能,它将提供你想要的: 基本上,代码看起来是这样的: function makeScrollbar(content,scrollbar,handle,horizontal,ignoreMouse){

我想用纯CSS3和JS创建一个定制的滚动条。这应该使用div元素来完成。请避免使用插件和溢出滚动条。 内容div可以包含任何元素,如
p
ul
image


我知道如何使用偏移值移动元素。你对如何创建这样一个滚动条有什么想法吗?

我知道你说没有插件,但你可能想看看本页显示的小功能,它将提供你想要的:

基本上,代码看起来是这样的:

function makeScrollbar(content,scrollbar,handle,horizontal,ignoreMouse){
                var steps = (horizontal?(content.getScrollSize().x - content.getSize().x):(content.getScrollSize().y - content.getSize().y))
                var slider = new Slider(scrollbar, handle, {    
                    steps: steps,
                    mode: (horizontal?'horizontal':'vertical'),
                    onChange: function(step){
                        // Scrolls the content element in x or y direction.
                        var x = (horizontal?step:0);
                        var y = (horizontal?0:step);
                        content.scrollTo(x,y);
                    }
                }).set(0);
                if( !(ignoreMouse) ){
                    // Scroll the content element when the mousewheel is used within the 
                    // content or the scrollbar element.
                    $$(content, scrollbar).addEvent('mousewheel', function(e){  
                        e = new Event(e).stop();
                        var step = slider.step - e.wheel * 30;  
                        slider.set(step);                   
                    });
                }
                // Stops the handle dragging process when the mouse leaves the document body.
                $(document.body).addEvent('mouseleave',function(){slider.drag.stop()});
            }

            window.addEvent('domready', function(){             
                // -- first example, vertical scrollbar --
                makeScrollbar( $('content1'), $('scrollbar1'), $('handle1') );
                // -- second example, horizontal scrollbar --
                makeScrollbar( $('content2'), $('scrollbar2'), $('handle2'), true );
                // -- third example, horizontal and vertical scrollbars
                makeScrollbar( $('content3'), $('scrollbar3'), $('handle3'), false );
                makeScrollbar( $('content3'), $('scrollbar4'), $('handle4'), true, true );  
            });

通过搜索,我在这里找到了一篇只使用css定制滚动条的文章

/*仅用于“插入”外观*/
html{
溢出:自动;
}
身体{
位置:绝对位置;
顶部:20px;
左:20px;
底部:20px;
右:20px;
填充:30px;
溢出y:滚动;
溢出x:隐藏;
}
/*让我们开始这个派对吧*/
:-webkit滚动条{
宽度:12px;
}
/*跟踪*/
:-webkit滚动条轨迹{
-webkit盒阴影:插入0.0 6px rgba(0,0,0,0.3);
-webkit边界半径:10px;
边界半径:10px;
}
/*处理*/
:-webkit滚动条拇指{
-webkit边界半径:10px;
边界半径:10px;
背景:rgba(53198205,0.8);
-webkit盒阴影:插入0.0 6px rgba(0,0,0,0.5);
}
:-webkit滚动条拇指:窗口处于非活动状态{
背景:rgba(255,0,0,0.4);
}

插图及;自定义WebKit滚动条
佩伦特式居住者morbi tristique Sentecus et netus et malesuada以turpis egestas闻名。前庭侵权人、世仇、别有用心者、临时诉讼人、担保人。不要让你的自由人坐在那里。我的生命是永恒的。莫里斯·普莱斯特拉特·埃利芬德·利奥。他是一个聪明的人。威斯康辛州的前庭、调味品、康茂德维塔、奥纳雷西特、威斯康辛州。埃涅亚发酵液、精粹葡萄汁调味品、红莓汁、豆豉箭叶。在turpis枕面部进行非enim治疗。乌特·费利斯。事实上,这是一个错误,是一个错误,是一个错误,是一个错误。阿利奎姆·埃拉特·帕特。Nam dui mi、tincidunt quis、accumsan porttitor、facilisis luctus、metus

佩伦特式居住者morbi tristique Sentecus et netus et malesuada以turpis egestas闻名。前庭侵权人、世仇、别有用心者、临时诉讼人、担保人。不要让你的自由人坐在那里。我的生命是永恒的。莫里斯·普莱斯特拉特·埃利芬德·利奥。他是一个聪明的人。威斯康辛州的前庭、调味品、康茂德维塔、奥纳雷西特、威斯康辛州。埃涅亚发酵液、精粹葡萄汁调味品、红莓汁、豆豉箭叶。在turpis枕面部进行非enim治疗。乌特·费利斯。事实上,这是一个错误,是一个错误,是一个错误,是一个错误。阿利奎姆·埃拉特·帕特。Nam dui mi、tincidunt quis、accumsan porttitor、facilisis luctus、metus

佩伦特式居住者morbi tristique Sentecus et netus et malesuada以turpis egestas闻名。前庭侵权人、世仇、别有用心者、临时诉讼人、担保人。不要让你的自由人坐在那里。我的生命是永恒的。莫里斯·普莱斯特拉特·埃利芬德·利奥。他是一个聪明的人。威斯康辛州的前庭、调味品、康茂德维塔、奥纳雷西特、威斯康辛州。埃涅亚发酵液、精粹葡萄汁调味品、红莓汁、豆豉箭叶。在turpis枕面部进行非enim治疗。乌特·费利斯。事实上,这是一个错误,是一个错误,是一个错误,是一个错误。阿利奎姆·埃拉特·帕特。Nam dui mi、tincidunt quis、accumsan porttitor、facilisis luctus、metus

佩伦特式居住者morbi tristique Sentecus et netus et malesuada以turpis egestas闻名。前庭侵权人、世仇、别有用心者、临时诉讼人、担保人。不要让你的自由人坐在那里。我的生命是永恒的。莫里斯·普莱斯特拉特·埃利芬德·利奥。他是一个聪明的人。威斯康辛州的前庭、调味品、康茂德维塔、奥纳雷西特、威斯康辛州。埃涅亚发酵液、精粹葡萄汁调味品、红莓汁、豆豉箭叶。在turpis枕面部进行非enim治疗。乌特·费利斯。事实上,这是一个错误,是一个错误,是一个错误,是一个错误。阿利奎姆·埃拉特·帕特。Nam dui mi、tincidunt quis、accumsan porttitor、facilisis luctus、metus

佩伦特式居住者morbi tristique Sentecus et netus et malesuada以turpis egestas闻名。前庭侵权人、世仇、别有用心者、临时诉讼人、担保人。不要让你的自由人坐在那里。我的生命是永恒的。莫里斯·普莱斯特拉特·埃利芬德·利奥。他是一个聪明的人。威斯康辛州的前庭、调味品、康茂德维塔、奥纳雷西特、威斯康辛州。埃涅亚发酵液、精粹葡萄汁调味品、红莓汁、豆豉箭叶。在turpis枕面部进行非enim治疗。乌特·费利斯。事实上,这是一个错误,是一个错误,是一个错误,是一个错误。阿利奎姆·埃拉特·帕特。Nam dui mi、tincidunt quis、accumsan porttitor、facilisis luctus、metus

佩伦特式居住者morbi tristique Sentecus et netus et malesuada以turpis egestas闻名。前庭侵权人、世仇、别有用心者、临时诉讼人、担保人。不要让你的自由人坐在那里。我的生命是永恒的。莫里斯·普莱斯特拉特·埃利芬德·利奥。他是一个聪明的人。威斯康辛州的前庭、调味品、康茂德维塔、奥纳雷西特、威斯康辛州。埃涅亚发酵液、精粹葡萄汁调味品、红莓汁、豆豉箭叶。在turpis枕面部进行非enim治疗。