最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

javascript自定义滚动条实现代码_javascript技巧

来源:动视网 责编:小采 时间:2020-11-27 20:50:33
文档

javascript自定义滚动条实现代码_javascript技巧

javascript自定义滚动条实现代码_javascript技巧:在工作中经常会遇到内容会超出固定的一个范围,超出的内容一般会使用到滚动条来滚动显示。 但是用浏览器默认的滚动条经常被产品经理鄙视,可是用css却改变不了滚动条的样式,还好,有万能的js ^_^~~ 网上有各种各样的插件,但最顺手的还是自己写的,还可以一
推荐度:
导读javascript自定义滚动条实现代码_javascript技巧:在工作中经常会遇到内容会超出固定的一个范围,超出的内容一般会使用到滚动条来滚动显示。 但是用浏览器默认的滚动条经常被产品经理鄙视,可是用css却改变不了滚动条的样式,还好,有万能的js ^_^~~ 网上有各种各样的插件,但最顺手的还是自己写的,还可以一
 在工作中经常会遇到内容会超出固定的一个范围,超出的内容一般会使用到滚动条来滚动显示。

但是用浏览器默认的滚动条经常被产品经理鄙视,可是用css却改变不了滚动条的样式,还好,有万能的js ^_^~~

网上有各种各样的插件,但最顺手的还是自己写的,还可以一边撸一边当学习,自己动手丰衣足食 (*^__^*)

其中这三个问题深深地困扰我:

  • 1、滚动条高度
  • 2、每次点击向上、向下按钮的时候滚动条应该移动多少距离
  • 3、每拖动1px滚动条,页面需要移动多少?
  • 整个的框架大概是长这样的:

    先来看看第一个问题。

      由于目前已经知道内容区域的高度和内容可视高度以及滚动条可滚动区域的高度了,由于内容区域与滚动条每次移动的距离都是成正比的,所以第一个问题很好解决:

      滚动条可移动范围 / 滚动条高度 = 内容高度 / 内容可视高度

    每次点击按钮的时候滚动条应该移动多少距离?

      这里我是给参数distance设置一个值来决定每次点按钮的时候,内容区域应该滚动多少的距离。改变这个值可以改变内容区域滚动的快慢,如果有更好的处理方法和建议记得告诉我喔~

    目前,内容区域每次滚动的距离是知道了,剩下的是计算滚动条相对于应该移动多少距离?

      滚动条可移动范围 /滚动条每次移动距离 = 内容区域高度 / 内容区域每次移动多少距离

    效果如下:

    这里还有一个问题,就是同时还得区分是单次点击还是长按。

    所以得判断一下从按下按钮到松开时候的时长,目前设置为<100ms为单次点击,否则为长按:

    拖动滚动条的时候,每移动1px滚动条,内容区域需要移动多少?

      先知道每1PX的距离占滚动条可移动范围的百分之几,再用内容区域高度除以所得的这个百分比,就得出滚动条每移动1px内容区域相对滚动多少距离了。

      内容区域滚动的距离 = 内容区域高度 / (滚动条滚动区域 / 1)

    demo完整代码如下:

    注意:因为用的是seajs写的,所以稍微留意下文件的加载情况啦

    css:

    .wapper{scrollbar-3dlight-color:#000; position:relative; height:302px;width:300px;overflow:hidden;margin:0 auto;line-height:40px;text-align:center;}
     .area{background-color:#E2E2EF;width:100%; position:absolute;top:0px;left:0px;}
     .bar{position:absolute;top:0px;right:0px; height:100%;width:1rem;background-color:#ccc;}
     .scroll,.middle,.forward,.backward{display:block;cursor:pointer;position:absolute;right:0px;width:100%;}
     .forward,.backward{height:16px;background-color:#6868B1;}
     .middle{background-color:rgba(255, 255, 255, 0.22);top:16px;cursor:auto;}
     .scroll{position:absolute;top:0px;background-color:#C2C2E9;}
     .forward{top:0px;}
     .backward{bottom:0px;}
    
    

    html:

    
     
     

    1、this is content

    2、this is content

    3、this is content

    4、this is content

    5、this is content

    6、this is content

    7、this is content

    8、this is content

    9、this is content

    10、this is content

    11、this is content

    js:

    文档

    javascript自定义滚动条实现代码_javascript技巧

    javascript自定义滚动条实现代码_javascript技巧:在工作中经常会遇到内容会超出固定的一个范围,超出的内容一般会使用到滚动条来滚动显示。 但是用浏览器默认的滚动条经常被产品经理鄙视,可是用css却改变不了滚动条的样式,还好,有万能的js ^_^~~ 网上有各种各样的插件,但最顺手的还是自己写的,还可以一
    推荐度:
    标签: 技巧 自定义 js
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top