찾다
웹 프론트엔드JS 튜토리얼js에서 스크롤 막대를 사용자 정의하는 방법(코드 첨부)

이 기사의 내용은 js에서 스크롤 막대를 사용자 정의하는 방법(코드 포함)입니다. 특정 참조 값이 있으므로 도움이 필요한 친구에게 도움이 되기를 바랍니다.

마우스 휠 이벤트

FireFox: DOMMouseScroll

e.detail 3까지 아래로 스크롤 -3

Non-FireFox까지 스크롤: onmousewheel

e.wheelDelta -120까지 아래로 스크롤 120까지 스크롤

사용자 정의 스크롤 막대 소스 코드

<!DOCTYPE html>
<html lang="">
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        * {
            margin: 0;            
            padding: 0;        
            }

        html,        
            body {
                        width: 100%;            
                        height: 100%;        
                  }

        #box {
            width: 100%;            
            height: 100%;            
            overflow: hidden;        
            }

        .ball {
                        width: 100%;            
                        height: 500px;        
                }

        #scroll {
                            width: 6px;            
                            height: 96%;            
                            position: fixed;            
                            top: 2%;            
                            right: 5px;           
                            border-radius: 3px;            
                            background-color: rgba(235, 233, 233, 0.5);            
                            z-index: 9998;            
                            opacity: 1;       
                  }

        #scrollBar {
                              position: absolute;            
                              z-index: 9999;            
                              width: 6px;            
                              height: 20px;            
                              border-radius: 3px;            
                              left: 0;            
                              top: 0;            
                              background-color: #383838;        
                     }
    </style>
   </head>
   <body style="overflow:hidden;">
    <div id="box">
        <div id="content">
            <p class="ball" style="background-color:lightpink;"></p>
            <p class="ball" style="background-color:blue;"></p>
            <p class="ball" style="background-color:yellow;"></p>
            <p class="ball" style="background-color:lightpink;"></p>
            <p class="ball" style="background-color:blue;"></p>
            <p class="ball" style="background-color:yellow;"></p>
        </div>
    </div>
    <div id="scroll">
        <div id="scrollBar"></div>
    </div></body></html><script type="text/javascript">
    var content = document.getElementById("content");    
   var box = document.getElementById("box");    
   var scroll = document.getElementById("scroll");    
   var scrollBar = document.getElementById("scrollBar");    
   var data = 30;    
   //  浏览器的可视高度减/页面的总高度*滚动栏的总高度=滚动按钮的高度
    var _eight;
    window.onresize = function (){
        init();
    }    
   function init (){
        _height = window.innerHeight * scroll.offsetHeight / content.offsetHeight;
        scrollBar.style.height = _height + "px";
    }
    init();    //火狐
    box.addEventListener("DOMMouseScroll", function (e) {
        var e = e || event;        if (e.detail > 0) {//向下滚动
            box.scrollTop += data;
        } else {//向上滚动
            box.scrollTop -= data;
        }        
   //浏览器的滚动距离/(页面的总高度-浏览器的可视高度)* (滚动栏的总高度-滚动按钮的高度)= 滚动的距离
        var _top = box.scrollTop * (scroll.offsetHeight - scrollBar.offsetHeight) / (content.offsetHeight - window.innerHeight);
        scrollBar.style.top = _top + "px";
    });    //非火狐
    box.addEventListener("mousewheel", function (e) {
        var e = e || event;        
   if (e.wheelDelta > 0) {//向上滚动
            box.scrollTop -= data;
        } else {//向下滚动
            box.scrollTop += data;
        }        
   //浏览器的滚动距离/(页面的总高度-浏览器的可视高度)* (滚动栏的总高度-滚动按钮的高度)= 滚动的距离
        var _top = box.scrollTop * (scroll.offsetHeight - scrollBar.offsetHeight) / (content.offsetHeight - window.innerHeight);
        scrollBar.style.top = _top + "px";
    });
   </script>

관련 권장 사항:

JS 구현된 페이지 사용자 정의 스크롤 막대 효과_javascript 기술

네이티브 js의 코드 사례 공유 사용자 정의 스크롤 막대의 캡슐화

위 내용은 js에서 스크롤 막대를 사용자 정의하는 방법(코드 첨부)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
如何使用JS和百度地图实现地图平移功能如何使用JS和百度地图实现地图平移功能Nov 21, 2023 am 10:00 AM

如何使用JS和百度地图实现地图平移功能百度地图是一款广泛使用的地图服务平台,在Web开发中经常用于展示地理信息、定位等功能。本文将介绍如何使用JS和百度地图API实现地图平移功能,并提供具体的代码示例。一、准备工作使用百度地图API前,首先需要在百度地图开放平台(http://lbsyun.baidu.com/)上申请一个开发者账号,并创建一个应用。创建完成

如何使用JS和百度地图实现地图热力图功能如何使用JS和百度地图实现地图热力图功能Nov 21, 2023 am 09:33 AM

如何使用JS和百度地图实现地图热力图功能简介:随着互联网和移动设备的迅速发展,地图成为了一种普遍的应用场景。而热力图作为一种可视化的展示方式,能够帮助我们更直观地了解数据的分布情况。本文将介绍如何使用JS和百度地图API来实现地图热力图的功能,并提供具体的代码示例。准备工作:在开始之前,你需要准备以下事项:一个百度开发者账号,并创建一个应用,获取到相应的AP

js字符串转数组js字符串转数组Aug 03, 2023 pm 01:34 PM

js字符串转数组的方法:1、使用“split()”方法,可以根据指定的分隔符将字符串分割成数组元素;2、使用“Array.from()”方法,可以将可迭代对象或类数组对象转换成真正的数组;3、使用for循环遍历,将每个字符依次添加到数组中;4、使用“Array.split()”方法,通过调用“Array.prototype.forEach()”将一个字符串拆分成数组的快捷方式。

如何使用JS和百度地图实现地图多边形绘制功能如何使用JS和百度地图实现地图多边形绘制功能Nov 21, 2023 am 10:53 AM

如何使用JS和百度地图实现地图多边形绘制功能在现代网页开发中,地图应用已经成为常见的功能之一。而地图上绘制多边形,可以帮助我们将特定区域进行标记,方便用户进行查看和分析。本文将介绍如何使用JS和百度地图API实现地图多边形绘制功能,并提供具体的代码示例。首先,我们需要引入百度地图API。可以利用以下代码在HTML文件中导入百度地图API的JavaScript

js中new操作符做了哪些事情js中new操作符做了哪些事情Nov 13, 2023 pm 04:05 PM

js中new操作符做了:1、创建一个空对象,这个新对象将成为函数的实例;2、将新对象的原型链接到构造函数的原型对象,这样新对象就可以访问构造函数原型对象中定义的属性和方法;3、将构造函数的作用域赋给新对象,这样新对象就可以通过this关键字来引用构造函数中的属性和方法;4、执行构造函数中的代码,构造函数中的代码将用于初始化新对象的属性和方法;5、如果构造函数中没有返回等等。

用JavaScript模拟实现打字小游戏!用JavaScript模拟实现打字小游戏!Aug 07, 2022 am 10:34 AM

这篇文章主要为大家详细介绍了js实现打字小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。

php可以读js内部的数组吗php可以读js内部的数组吗Jul 12, 2023 pm 03:41 PM

php在特定情况下可以读js内部的数组。其方法是:1、在JavaScript中,创建一个包含需要传递给PHP的数组的变量;2、使用Ajax技术将该数组发送给PHP脚本。可以使用原生的JavaScript代码或者使用基于Ajax的JavaScript库如jQuery等;3、在PHP脚本中,接收传递过来的数组数据,并进行相应的处理即可。

js是什么编程语言?js是什么编程语言?May 05, 2019 am 10:22 AM

js全称JavaScript,是一种具有函数优先的轻量级,直译式、解释型或即时编译型的高级编程语言,是一种属于网络的高级脚本语言;JavaScript基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式,如函数式编程。

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

MinGW - Windows용 미니멀리스트 GNU

MinGW - Windows용 미니멀리스트 GNU

이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경