`
yangmeng_3331
  • 浏览: 92143 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

js模拟滚动条

阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js" type="text/javascript" language="javascript"></script>
<script type="text/javascript">
$(function(){
 var scro_zoom = parseInt($(".scro_mouse").width()/2);
 var scro = $("#scro");
 var scroWidth = parseInt($("#scro").width());
 var scroImgWidth = parseInt($(".scro_img ul li").width());
 var scroMouse = parseInt($(".scro_mouse").width());
 var scroMove = $(".scro_img ul");
 var scroImgLength = $(".scro_img ul li").length;
 var scroImgBoxWidth = scroImgWidth * scroImgLength + scroImgLength * 10 + 10;
 var zoompos = {x:0,y:0};
 var flag = false;
 var scropos;
 scroMove.css("width",scroImgBoxWidth + "px");
 
 
 $(".scro_mouse").bind("mousedown",function(e){
  flag = true;
  $(this).css("background","blue");
  $(".show").fadeIn(300);
  return false;
 }).mousemove(function(e){
  if(flag){
   $zoompos(e.pageX,e.pageY);
   $(this).css("left",zoompos.x);
   scroMove.css("left",-scropos + "px");
  }
 }).mouseup(function(e){
  flag = false;
  $(".show").hide();
  $(this).css("background","#ccc");
 })
 $(document).mouseup(function(e){
  flag = false;
  $(".show").hide();
  $(".scro_mouse").css("background","#ccc");
 })
 
 function $zoompos(x,y){
  zoompos.x = x - scro.offset().left - scro_zoom; //得到left值;
  zoompos.y = y - scro.offset().top - 5;//得到top值;
  scropos = parseInt((scroImgBoxWidth - scroWidth) / (scroWidth - scroMouse) * zoompos.x);
  if(zoompos.x <= 0){
   zoompos.x = 0;
  }
  if(zoompos.x + scroMouse >= scroWidth){
   zoompos.x = scroWidth - scroMouse;
  }
  if(scropos < 0){
   scropos = 0;
  }
  if(scropos >= scroImgBoxWidth - scroWidth){
   scropos = scroImgBoxWidth - scroWidth;
  }
  $(".show").text( zoompos.x + "," + zoompos.y + "," + $(".scro_mouse").css("left"));
 }
})
</script>
<style type="text/css">
 *{ margin:0; padding:0;}
 #box{ width:460px; border:1px solid #000; margin:50px auto;}
 #scro{ width:100%; height:30px; background:red; margin:10px 0; position:relative;}
 .scro_line{ width:100%; height:0; overflow:hidden; border-top:2px groove #000; position:absolute; left:0; top:15px; z-index:0;}
 .scro_mouse{ width:66px; height:20px; background:#ccc; cursor:pointer; position:absolute; left:0; top:5px; z-index:1;}
 .show{ width:100px; height:30px; position:absolute; display:none; top:-30px; left:0;}
 .scro_img{ width:460px; height:60px; margin:10px 0; overflow:hidden; position:relative;}
 .scro_img ul{ position:absolute; left:0; top:0;}
 .scro_img ul li{ display:inline; float:left; width:80px; height:60px; margin-left:10px; background:red;}
</style>
</head>
<body>
    <div id="box">
     <div class="scro_img">
         <ul>
             <li>1</li>
                <li>2</li>
                <li>3</li>
                <li>4</li>
                <li>5</li>
                <li>6</li>
                <li>7</li>
                <li>8</li>
                <li>9</li>
                <li>10</li>
                <li>11</li>
                <li>12</li>
            </ul>
        </div>
        
        <div id="scro">
         <div class="show"></div>
         <div class="scro_line"></div>
         <div class="scro_mouse"></div>
        </div>
        <div class="text"></div>
    </div>
</body>
</html>

分享到:
评论

相关推荐

    js 模拟滚动条js 模拟滚动条js 模拟滚动条

    总的来说,使用JavaScript模拟滚动条涉及到HTML布局、CSS样式和JavaScript事件处理等多个方面。虽然实现起来相对复杂,但能够带来更好的设计灵活性和用户体验。在实际项目中,可以参考现有的库,如Perfect Scrollbar...

    js 模拟 滚动条

    JavaScript模拟滚动条是通过监听滚动事件、计算元素的可视区域与总内容的关系,然后手动更新和控制一个自定义滚动条的样式和位置。这通常涉及到CSS定位(positioning)和尺寸计算(dimensions calculation)。 2. ...

    js模拟滚动条(横向竖向)

    通过JavaScript模拟滚动条不仅可以提高页面的美观度,还可以实现更复杂的交互效果。本文介绍了如何使用JavaScript结合CSS来实现横向和纵向的滚动条,包括关键的技术点和实现思路。希望这些内容能够帮助开发者更好地...

    JS模拟滚动条,兼容各浏览器

    系统默认的滚动条很丑,用这个可以自己换成图片等。 主要事件: 上、下按钮按住,内容慢慢滚动。 拖动滚动条,内容快速滚动。 点击滚动条空闲位置,内容定位。 鼠标滚轮在内容中滚动时,内容滚动。 代码未整理,...

    JS模拟滚动条,代理已整理

    系统默认的滚动条很丑,用这个可以自己换成图片等。 主要事件: 上、下按钮按住,内容慢慢滚动。 拖动滚动条,内容快速滚动。 点击滚动条空闲位置,内容定位。 鼠标滚轮在内容中滚动时,内容滚动。

    很好的jq模拟滚动条

    "很好的jq模拟滚动条"是一个专门针对jQuery库开发的插件,它提供了一种自定义和美化滚动条的方法,以增强网页的视觉效果和用户体验。 jQuery,简称jq,是一个轻量级、功能丰富的JavaScript库,它简化了HTML文档遍历...

    js各种兼容滚动条

    比如`perfect-scrollbar`、`malihu-custom-scrollbar-plugin`等,这些库通过JavaScript模拟滚动条,可以提供高度自定义的滚动体验,同时处理好不同浏览器的兼容问题。 例如,`perfect-scrollbar`的使用方法如下: ...

    模拟滚动条

    "模拟滚动条"这个主题涉及的技术点主要包括CSS3、JavaScript(特别是jQuery或更现代的库如Vue.js、React.js)以及可能的插件应用。 首先,我们来了解一下什么是滚动条。滚动条是用户界面中的一个重要元素,用于在...

    JS模仿滚动条JS模仿滚动条

    4. **响应用户交互**:通过JavaScript监听滚动事件,例如`scroll`事件,来更新模拟滚动条的位置。根据实际滚动位置,调整模拟滚动条滑块的CSS属性,如`transform`或`left/top`,使其与实际滚动保持同步。 5. **添加...

    jQuery实现模拟滚动条插件版

    本主题聚焦于"jQuery实现模拟滚动条插件版",这是一个能够自定义网页滚动条外观和行为的工具。通过使用这样的插件,开发者可以为网站提供更加个性化和一致的用户体验。 首先,我们需要理解jQuery的基本用法。jQuery...

    javascript模拟滚动条实现代码

    在当前的Web开发中,使用JavaScript模拟滚动条是一个常见的需求,尤其是在那些原生滚动条无法满足特定交互效果的情况下。根据提供的文件信息,内容主要涉及如何使用JavaScript以及CSS来创建一个自定义的滚动条,并且...

    JS自定义滚动条,可以自定义很多类型的网页滚动条

    为了实现跨浏览器的JS自定义滚动条,我们可以借助JavaScript库,如Perfect Scrollbar、SimpleBar、Malihu Custom Scrollbar等。这些库通过监听滚动事件并模拟滚动行为,来实现自定义滚动条的功能。例如,Perfect ...

    JS模拟简易滚动条效果代码(附demo源码)

    使用Js模拟滚动条。简易模式,类似手机上常见的滚动条。 效果如下: Js代码如下: var scrollMoveObj = null, scrollPageY = 0, scrollY = 0; var scrollDivList = new Array(); // obj需要添加滚动条的对象 w滚动...

    网页滚动条

    1. 基本原理:JS自定义滚动条通常通过监听滚动事件,然后使用CSS对滚动条进行隐藏和替换,用自定义的UI元素模拟滚动条的功能。这种方法可以让开发者完全控制滚动条的样式和行为,例如改变滚动条的颜色、宽度、形状等...

    New js 滚动条

    3. Nicescroll:提供模拟滚动条,可以替换默认的浏览器滚动条,支持自定义颜色和动画效果。 4. malihu custom scrollbars:提供了大量的选项和设置,可以创建高度定制的滚动条,包括鼠标滚轮和触摸设备的支持。 三...

    自定义滚动条jscroll.js修改改进后可动态重载滚动条

    1. **理解`jscroll.js`工作原理**:`jscroll.js`通常通过监听滚动事件,然后使用CSS或JavaScript模拟滚动条。它会覆盖浏览器的原生滚动条,创建一个自定义的容器,并通过计算内容的大小来模拟滚动效果。 2. **动态...

    漂亮的JS+css 模拟 带滚动条的select 可以重复使用

    漂亮的JS+css 模拟 带滚动条的select 可以重复使用 漂亮的JS+css 模拟 带滚动条的select 可以重复使用 漂亮的JS+css 模拟 带滚动条的select 可以重复使用 漂亮的JS+css 模拟 带滚动条的select 可以重复使用

    JS模仿横向滚动条

    "JS模仿横向滚动条"这个主题,就是利用JavaScript来创建一个自定义的、模仿原生浏览器滚动条的行为,以提供更美观或者更符合设计需求的用户体验。 在传统的HTML页面中,滚动条是浏览器默认提供的,其样式和行为由...

    textArea滚动条样式

    这些库通过监听滚动事件并创建自定义的滚动元素来模拟滚动条,从而实现全浏览器兼容。 - `SimpleBar`: - `PerfectScrollbar`: 安装并使用`SimpleBar`: ```bash npm install simplebar ``` ```...

Global site tag (gtag.js) - Google Analytics