使用纯JavaScript和CSS的自定义滚动条
我想用纯CSS3和JS创建一个定制的滚动条。这应该使用div元素来完成。请避免使用插件和溢出滚动条。 内容div可以包含任何元素,如使用纯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){
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治疗。