`

使用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');
                     }
                )
            }
        )
        
    }); 
}

分享到:
评论
2 楼 gundumw100 2010-09-13  
http://www.aa25.cn/content.asp?id=794
1 楼 lotnhiro 2010-09-12  
e .....

能发个效果图吗??

谢谢

相关推荐

    jquery 获取浏览器滚动条宽度数值

    jquery 获取当前浏览器滚动条宽度数值

    jq仿滚动条,超简单易用

    压缩包中的"JQ仿滚动条使用超简单"很可能是插件的示例代码或使用指南,包含了一些基本的配置和使用示例,可以帮助开发者快速上手。在实际开发过程中,开发者可以根据项目需求调整插件参数,实现更多自定义效果,如...

    很好的jq模拟滚动条

    由于原生浏览器的滚动条样式有限,且在不同浏览器间存在差异,开发者们常常会寻求第三方解决方案来实现一致且美观的滚动条设计,这就是jq模拟滚动条插件的作用所在。 这个插件提供了多种预设样式和自定义选项,使得...

    Jquery实现水平滚动条

    而使用Jquery实现的水平滚动条可以提供更加灵活、美观且用户体验良好的解决方案。本篇将深入探讨如何利用Jquery插件来创建这样的功能。 首先,jQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、...

    自定义美化滚动条插件

    描述中的“JQ浏览器滚动条插件 浏览器滚动条美化JQ浏览器滚动条插件 浏览器滚动条美化”强调了这个插件主要针对jQuery库,并且其核心功能是美化浏览器的滚动条。jQuery是一个广泛使用的JavaScript库,它简化了DOM...

    jQuery实现浮动层随浏览器滚动条滚动的方法

    总结来说,通过上述步骤,我们可以利用jQuery实现一个浮动层随浏览器滚动条滚动的效果,并确保浮动层在滚动到页面底部时依然能够保持在合适的位置。这种方法的实现需要对jQuery的选择器和事件处理机制有一定的理解,...

    各种jquery自定义滚动条

    默认的浏览器滚动条虽然功能完备,但在视觉效果和与网站风格的统一性上有时会显得不足。jQuery作为一个强大的JavaScript库,为开发者提供了丰富的自定义滚动条插件,使得我们可以轻松地改变滚动条的外观和交互方式,...

    使用jQuery判断浏览器滚动条位置的方法

    1、我一开始用swipeup和swipedown来做,发现因为有滚动条,不会触发。因此只能判断滚动条是上滚下滚等。关于手机手势,后面的文章会介绍,欢迎关注! 2、通过上滚下滚来让底部导航显示或者因此,安卓上面的浏览器都...

    jQuery实现将div的滚动条滚动到指定位置

    要实现将div的滚动条滚动到指定位置,我们可以使用jQuery的`animate()`方法。`animate()`方法允许我们创建平滑的动画效果,包括改变滚动位置。下面是一个简单的示例代码: ```html &lt;!DOCTYPE html&gt; &lt;title&gt;...

    html滚动条样式

    HTML5页面滚动条样式的实现通常涉及到CSS3的伪元素选择器和JavaScript库,如jQuery,来增强浏览器默认滚动条的视觉效果。在本例中,我们关注的是如何使用jQuery和自定义CSS来定制HTML5页面中的滚动条,使得它们更...

    JQ滚动条效果

    ### JQ滚动条效果知识点详解 #### 一、概述 在网页设计与开发过程中,为了增强用户体验和提高网站的互动性,开发者们常常会利用jQuery(简称JQ)来实现各种动态效果。其中,“防CSDN论坛,页面滚动一定距离后,...

    jquery修改滚动条样式

    需要注意的是,由于滚动条样式的跨浏览器兼容性问题,可能需要针对不同的浏览器进行适配,例如使用`-moz-`和`-ms-`前缀来支持Firefox和IE/Edge。同时,考虑到性能优化,应避免在大量元素上应用滚动条样式,以减少...

    jQuery全屏页面滚动效果页面上下滚动效果代码jq插件

    在回调函数中,我们需要获取当前滚动条的位置,这可以通过`$(window).scrollTop()`来实现。根据滚动条的位置,我们可以计算出哪些内容应该显示,哪些应该隐藏。如果页面内容被分成了多个部分(通常每个部分占据一...

    jquery滚动条样式

    除了使用插件,还可以直接操作CSS3的伪元素`:hover`, `:active`, `:focus`以及`:selection`来实现滚动条的样式调整。但这种方法的兼容性和可定制性相比插件会略逊一筹。 在实际项目中,横向滚动条和纵向滚动条的...

    jq带滚动条图片滚动.zip

    本项目"jq带滚动条图片滚动.zip"显然是一个使用jQuery实现图片滚动功能的示例。下面将详细介绍这个主题中的关键知识点。 1. **CSS**: - **样式设置**:CSS用于美化网页,包括图片的布局、尺寸、位置等。对于图片...

    JQuery滚动条

    本文将深入探讨JQuery滚动条的相关知识点,包括如何使用JQuery实现自定义滚动条以及如何修改滚动条的样式。 首先,我们需要理解JQuery的基本用法。JQuery简化了JavaScript的DOM操作,提供了更加简洁的语法来选择、...

    jq滚动栏插件(多个网页实例浏览器打开马上可用)

    标题中的“jq滚动栏插件”指的是基于JavaScript库jQuery实现的滚动条插件,这种插件主要用于美化网页的默认滚动条,提供自定义样式和交互效果。jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历、事件处理...

    jQuery插件:Tiny Scrollbar滚动条插件(滚动条美化、默认滚动条)

    这款插件主要通过CSS和JavaScript来实现滚动条的样式调整和交互控制。 2. **安装与引入** 要使用Tiny Scrollbar,首先需要在项目中引入jQuery库,然后下载Tiny Scrollbar的JS和CSS文件。在HTML文档中,通过`...

    jQuery滚动条缩放图片

    `$(window).scrollTop()`返回的是浏览器窗口顶部距离文档顶部的距离,这个值随着滚动条的移动而变化。结合图片的原始尺寸和滚动距离,我们可以计算出图片的新尺寸。通常,我们会设置一个阈值,当滚动到一定位置时...

    jquery滚动条

    jQuery作为一个强大的JavaScript库,提供了丰富的功能来帮助开发者实现对滚动条的自定义和美化,从而提升网站的视觉效果和交互体验。本篇文章将深入探讨jQuery滚动条的相关知识点。 首先,我们要了解为什么需要美化...

Global site tag (gtag.js) - Google Analytics