使用JQ来实现浏览器滚动条

http://www.aa25.cn/content.asp?id=794


<script type="text/javascript" src="jquery-1.1.3.1.js"></script>
<script type="text/javascript" src="jquery.linscroll.js"></script>
<script type="text/javascript">
$(document).ready(
function(){
$(’#scrollContent’).setScroll( //scrollContent为滚动层的ID
{img:scroll_bk.gif’,width:10},//背景图及其宽度
{img:scroll_arrow_up.gif’,height:3},//up image
{img:scroll_arrow_down.gif’,height:3},//down image
{img:scroll_bar.gif’,height:25}//bar image
);});
</script>


<div id="scrollContent" style="width:140px;overflow:hidden;height:170px;">
内容
</div>



jquery.linscroll.js源码:

jQuery.fn.setScroll = function(_scroll,_scroll_up,_scroll_down,_scroll_bar){
this.each(function(){

var _bar_margin = 3;

//create scroll dom
var _scroll_control = jQuery('<div class="scroll_zone">').width(_scroll.width).css({'position':'absolute','float':'none',margin:0,padding:0}).css('background','url('+_scroll.img+')');
var _scroll_control_up = jQuery('<img class="scroll_down">').attr('src',_scroll_up.img).width(_scroll.width).css({'z-index':'1000','position':'absolute', 'top':'0','float':'none',margin:0,padding:0});
var _scroll_control_down = jQuery('<img class="scroll_down">').attr('src',_scroll_down.img).width(_scroll.width).css({'z-index':'1000','position':'absolute', 'bottom':'0','float':'none',margin:0,padding:0});
var _scroll_control_bar = jQuery('<img class="scroll_bar">').attr('src',_scroll_bar.img).width(_scroll.width).css({'z-index':'1500','position':'absolute','float':'none',margin:0,padding:0,height:_scroll_bar.height+'px'}).css('top',_scroll_up.height+_bar_margin+'px');

_scroll_control.append(_scroll_control_up);
_scroll_control.append(_scroll_control_bar);
_scroll_control.append(_scroll_control_down);

var _oheight = jQuery(this).css('height').substring(0,jQuery(this).css('height').indexOf('px'));
var _owidth = jQuery(this).width();
var _ocontent = jQuery(this).html();

if(jQuery(this).attr('scrollHeight')<=_oheight) return;

var _content_zone = jQuery('<div>').html(_ocontent).css({ width:_owidth-10+'px',height:_oheight+'px',overflow:'hidden','float':'none',margin:0,padding:0});

jQuery(this).css({'overflow':'hidden'});
jQuery(this).empty().append(_content_zone).css({position:'relative'}).append(_scroll_control.css({left:_owidth-_scroll.width+'px',top:'0',height:_oheight+'px',margin:0,padding:0}));

//register drag event
jQuery(this).find('.scroll_bar')
.mousedown(
function(){
jQuery(document).mousemove(
function(e){
var _content = _content_zone.get(0);
var lastProgress = _scroll_control_bar.attr('progress');
_scroll_control_bar.attr('progress',e.pageY);
var nowProgress = _scroll_control_bar.css('top');
nowProgress = nowProgress.substring(0,nowProgress.indexOf('px'));
nowProgress = Number(nowProgress) + Number(e.pageY-lastProgress);
var preProgress = nowProgress/(_oheight-_scroll_up.height-_scroll_down.height-_scroll_bar.height-(2*_bar_margin));
_content.scrollTop = ((_content.scrollHeight - _content.offsetHeight) * preProgress);
if(nowProgress<(_scroll_up.height+_bar_margin) || nowProgress > (_oheight-(_scroll_down.height+_scroll_bar.height+_bar_margin))) return false;
try{_scroll_control_bar.css('top',nowProgress+'px');}catch(e){}
return false;
}
);
return false;
}
)
.mouseout(
function(){
jQuery(document).mouseup(
function(){
jQuery(document).unbind('mousemove');
}
)
}
)

});
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当鼠标在页面上按下时,可以使用jQuery中的鼠标按下事件(mousedown event)来监听。一旦鼠标按下,就可以执行代码来实现自动滚动条流动到当前位置。 首先,我们需要获取当前滚动条的位置。可以使用jQuery的scrollTop()方法来获取垂直滚动条的位置,或者使用scrollLeft()方法获取水平滚动条的位置。 接下来,我们可以使用animate()方法来创建动画效果,使滚动条平滑流动到当前位置。在animate()方法中,我们可以设置scrollTop或scrollLeft属性的值为当前滚动条的位置,从而实现流动效果。 最后,我们将这段代码绑定在鼠标按下事件的回调函数中,以便在鼠标按下时执行。具体代码如下: ```javascript $(document).mousedown(function() { var currentScrollTop = $(window).scrollTop(); // 获取当前垂直滚动条位置 $('html, body').animate({ scrollTop: currentScrollTop }, 500); // 将滚动条流动到当前位置,动画持续时间为500毫秒 }); ``` 在上述代码中,我们通过监听整个文档的鼠标按下事件来实现滚动条的自动流动。当鼠标按下时,获取当前滚动条位置,并使用animate()方法创建动画效果,将滚动条平滑流动到当前位置。 请注意,上述代码假设你使用的是最新版本的jQuery,并且已经引入了jQuery库。如果需要适配旧版本的jQuery或者其他JavaScript库,请根据实际情况进行修改和调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值