DIV 滚动条 设置样式不支持所有的浏览器
自制一个滚动条用JS实现滚动的效果
目前支持除IE6以外 支持所有的浏览器(FF、Opera、Google....)
Bar效果源文件
//滚动Bar的ID 滚动DIV的ID 左边Bar 右边Bar
var ScrollBar = function(bar_ID, context_ID, barLeft_ID, barReight_ID,moveBy_PX){
var _bar_obj;//Bar对象
var _barLeft_obj//左移对象
var _barRight_obj;//右移对象
var _context_obj;//内容对象
var _isMoveBar = false;//是否为拖动Bar
var _move_max_number;//Bar移动的最大数值
var _move_number;//Bar 移动的数据值
var _bar_height;//Bar 的基本高度
var _context_height;//内容的基本高度
var _bar_base_height;//Bar 基本高度
var _mouse_curr = 0;//鼠标 点击Bar的位置
var _bar_curr_top = 0;//鼠标点击Bar 距TOp的距离
var _move_bar_maxto;//Bar 移动的最大位置
var _bar_px_number;//Bar每个象素代表多少数值
var _moveByPX=moveBy_PX;//如果是根据象素移动,则移动多少象素
function _init(){
//初始化对象
_bar_obj = $(bar_ID);
_context_obj = $(context_ID);
_barLeft_obj = $(barLeft_ID);
_barRight_obj = $(barReight_ID);
_context_height = _context_obj.clientHeight;
_move_number = 0;
_move_max_number = (_context_obj.scrollHeight / _context_obj.clientHeight) - 1;
_bar_base_height = _context_obj.clientHeight - _barLeft_obj.clientHeight - _barRight_obj.clientHeight;
var bar_height_num = _context_obj.clientHeight / _context_obj.scrollHeight;
//初始化Bar 高度
_bar_height = ((bar_height_num >= 1 ? 1 : bar_height_num) * _bar_base_height);
_bar_obj.style.height = _bar_height + "px";
_move_bar_maxto = _bar_base_height + (_barLeft_obj.clientHeight - _bar_obj.clientHeight);
_bar_px_number = 1 / _bar_height;
//事件动态注册
_addEvent(_bar_obj, "mousedown", _barmousedown);
_addEvent(document, "mouseup", _changeState);
_addEvent(document, "mousemove", _movebar);
//点击两边的Bar是否 按象素滚动。
if(_moveByPX){
_addEvent(_barLeft_obj,"click",function(){_barMoveByPx(-_moveByPX)});
_addEvent(_barRight_obj,"click",function(){_barMoveByPx(_moveByPX)});
}else{
_addEvent(_barLeft_obj, "click", function(){_barMoveByNumber(-0.1)});
_addEvent(_barRight_obj, "click", function(){_barMoveByNumber(0.1)});
}
};
function _changeState(){
_isMoveBar = false;
}
//添加事件
function _addEvent(obj, evt, fn){
if (window.attachEvent) {
obj.attachEvent("on" + evt, fn)
}
else {
obj.addEventListener(evt, fn, false);
}
};
//移动 Context内容
function _barMoveByContextTop(){
_move_number = (_bar_obj.offsetTop - _barLeft_obj.clientHeight) * _bar_px_number;
_context_obj.scrollTop = _context_height * _move_number;
};
//根据 比例移动 Bar
function _barMoveByNumber(num){
_move_number += num;
if (_move_number < 0) {
_move_number = 0;
}
if (_move_number > _move_max_number) {
_move_number = _move_max_number;
}
_moveBarTo(_barLeft_obj.clientHeight + (_bar_height * _move_number));
};
//根据 象素 移动Bar
function _barMoveByPx(num){
_moveBarTo(_bar_obj.offsetTop + num);
};
//根据 ID 取得元素
function $(id){
return document.getElementById(id);
};
//鼠标 移动 (拖动Bar)
function _movebar(){
if (_isMoveBar) {
var event = _mouseCoords(arguments[0] || window.event);
_moveBarTo(_bar_curr_top + (event.y - _mouse_curr));
}
};
//把Bar移动 到某位置
function _moveBarTo(m_to){
if (m_to > _barLeft_obj.clientHeight && m_to < _move_bar_maxto) {
_bar_obj.style.top = m_to+"px";
}
_barMoveByContextTop();
};
//得到鼠标的坐标
function _mouseCoords(ev){
if (ev.pageX || ev.pageY) {
return {x: ev.pageX,y: ev.pageY};
}
return ev;
}
//鼠标点击
function _barmousedown(){
var event = _mouseCoords(arguments[0] || window.event);
_isMoveBar = true;
_mouse_curr = event.y;
_bar_curr_top = _bar_obj.offsetTop;
};
_init();
};
//页面调用源文件
//配置信息
var bar_ID = "bar";//滚动Bar的ID
var context_ID = "main_value";//滚动DIV的ID
var barLeft_ID = "bar_left";//左边Bar
var barReight_ID = "bar_right"; //右边Bar
var moveBy_PX;//两边按钮,根据象素移动
function init(){
ScrollBar(bar_ID, context_ID, barLeft_ID, barReight_ID,moveBy_PX);
}
window.onload = init
<div class="Main_cont" id="main_value">
内容。。。。。。
</div>
<div class="scrollbar" id="dome">
<img class="track" src="Images/sb.gif" alt="">
<a id="bar" style="background-color:black;" class="arrow-left"></a>
<img id="bar_left" class="arrow-right" src="Images/sl.gif" alt="">
<img id="bar_right" class="bar" src="Images/sr.gif" alt="">
</div>
- 大小: 17 KB
分享到:
相关推荐
标题中的“一个JS实现的滚动条效果”指的是使用JavaScript编程语言来创建自定义滚动条的交互体验。在网页设计中,滚动条是用户浏览超出视口内容的重要工具,而默认的浏览器滚动条样式通常比较单一。通过JavaScript,...
主要的JavaScript文件是`src/js/perfect-scrollbar.js`,CSS文件位于`src/css/perfect-scrollbar.css`。在实际项目中,你可能需要将这些文件合并到你的构建流程中,或者通过CDN引入。 在使用过程中,首先确保引入了...
原生JS(JavaScript)滚动条插件能够帮助开发者自定义和美化浏览器的默认滚动条,使其符合网站的整体风格。本资源包“原生js scrollbars滚动条插件设置浏览器竖直滚动条美化”提供了一套解决方案,专用于竖直滚动条...
标题中的“一款效果很不错的JS滚动条”指的是一个JavaScript实现的滚动条插件或库,它提供了优于浏览器默认滚动条的视觉效果和交互体验。在网页设计中,滚动条是必不可少的元素,尤其是在内容丰富的页面上,它帮助...
45. 3D旋转:利用CSS3和JavaScript实现3D空间内的旋转效果。 46. 图片占位符:在真实图片加载前显示占位符,避免空白区域,如placehold.it服务。 47. 触摸事件:针对移动设备,处理触摸手势,如Hammer.js。 48. ...
因此,"New js 滚动条"通常是利用JavaScript库或者自定义代码来实现更加个性化和动态的滚动效果。 一、JavaScript滚动条的优势 1. 可定制性:JavaScript允许开发者自定义滚动条的样式,颜色,宽度,甚至动画效果,...
在JavaScript中,"js三级滚动条"通常是指在网页中实现多级嵌套的滚动条效果,例如在导航菜单、树形结构或者长列表中。这样的功能可以增强用户体验,使得大量数据的展示更加有序和易操作。下面我们将深入探讨如何在...
首先,`jscroll.js`是一个JavaScript库,它允许开发者自定义浏览器的默认滚动条样式,提供更美观、符合设计感的滚动效果。原始的`jscroll.js`可能并不直接支持动态重载,即在页面内容改变后更新滚动条的行为。为了...
JavaScript(简称JS)是一种轻量级的解释型编程语言,广泛应用于网页和互联网应用开发,它的强大之处在于能够对网页的动态效果进行控制,其中包括滚动条的定制。滚动条是用户界面中的一个重要元素,用于查看网页或...
本文将深入探讨如何利用JavaScript(JS)实现多风格的图形滚动条,以提升网页的视觉效果。 首先,我们要理解JavaScript在网页中的角色。JavaScript是一种客户端脚本语言,它可以在用户的浏览器上运行,用于交互式地...
在网页设计中,jQuery是一个非常流行的JavaScript库,它极大地简化了JavaScript的使用,尤其是对于DOM操作、事件处理和动画效果。"JQuery 滚动条"这一主题主要涉及如何利用jQuery来控制和美化网页中的滚动条。在这个...
本资源“jquery自定义滚动条.rar”是关于如何利用jQuery实现自定义滚动条效果的一个实例,主要适用于前端开发人员,特别是那些希望在网页中提供独特用户体验的开发者。 首先,滚动条是网页界面中的一个重要组成部分...
这个老版的jQuery插件可能提供了这样的功能,允许开发者通过CSS和JavaScript自定义滚动条的颜色、大小、形状以及动画效果。 在JavaScript领域,这个插件利用了jQuery的强大功能,可能包含以下核心知识点: 1. **...
为此,开发者们经常利用JavaScript库如jQuery来实现自定义滚动条,以提升界面的美观性和交互性。本主题我们将深入探讨如何使用jQuery实现自定义滚动条。 首先,jQuery是一个广泛使用的JavaScript库,它简化了DOM...
JavaScript(简称JS)是一种轻量级的编程语言,常用于网页...总的来说,"js鼠标放置背景滚动变化特效"是一种提升网页交互性的技术,通过JavaScript和CSS的配合,可以实现丰富的视觉效果,为用户提供更有趣的浏览体验。
要实现滚动效果,通常需要使用 JavaScript 或 jQuery。在这个例子中,可能需要监听用户的鼠标滚动事件,然后根据滚动方向调整 `#img` 的 `left` 属性,模拟出滚动的效果。同时,还需要处理边界条件,防止过度滚动。...
这主要通过CSS的伪元素`::-webkit-scrollbar`和`::-webkit-scrollbar-thumb`来实现,但要注意浏览器兼容性问题。 10. **滚动容器**: - 不止整个页面可以监听滚动,也可以针对特定的DOM元素监听。例如,设置一个...
"PC端滚动条插件"正是为了满足这种需求而诞生的工具,它采用原生JavaScript实现,提供了高度的灵活性和可定制性,让用户能够根据自己的设计风格调整滚动条的样式,同时保持其基本的滚动功能。 滚动条插件的核心功能...
"6thDay:项目第6天端滚动条代码"这个标题表明我们正在讨论一个关于JavaScript实现的滚动条功能的项目,这可能是为了优化用户体验,特别是在移动设备或现代网页设计中,自定义滚动条已经成为一种常见的需求。...