사용자 정의 스크롤 막대: html, css, js 코드에 대한 별도의 구현 단계
Aug 10, 2018 am 09:31 AM
사용자 정의 스크롤 막대
HTML 구조
<p class="content" id="content"> <p class="con-scroll" id="countent"> js对于鼠标滚轮事件的监听 <br> 2017年08月25日 18:17:56 <br> 阅读数:10072 <br> 需求: <br> 通过鼠标滚轮实现某个表单内的数字增加减少操作,或者滚轮控制某个按钮的上下滚动后触发不同的事件。 <br> 实现: <br> 通过js对鼠标滚轮的事件进行监听。 <br> 描述: <br> 首先,不同的浏览器有不同的滚轮事件。主要是有两种,onmousewheel(firefox不支持)和DOMMouseScroll(只有firefox支持),关于这两个事件这里不做详述,想要了解的朋友请移步:鼠标滚轮(mousewheel)和DOMMouseScroll事件。 <br> 具体实现:1. 需要添加事件监听,代码如下:兼容firefox采用addEventListener监听 <br> /*监听鼠标滚动事件 <br> * 1.火狐的是:DOMMouseScroll; <br> * 2.IE/Opera/Chrome:直接添加事件*/ <br> if(document.addEventListener){ <br> document.addEventListener('DOMMouseScroll',scrollFunc,false); <br> }//W3C <br> window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome <br> var scrollFunc=function(e){ <br> e=e || window.event; <br> if(e.wheelDelta){//IE/Opera/Chrome <br> //自定义事件:编写具体的实现逻辑 <br> mouseScroll(); <br> }else if(e.detail){//Firefox <br> //自定义事件:编写具体的实现逻辑 <br> mouseScroll(); <br> } <br> } <br> 简要说明: <br> 判断滚轮向上或向下在浏览器中也要考虑兼容性,现在五大浏览器(IE、Opera、Safari、Firefox、Chrome)中Firefox 使用detail,其余四类使用wheelDelta;两者只在取值上不一致,代表含义一致,detail与wheelDelta只各取两个 值,detail只取±3,wheelDelta只取±150,其中正数表示为向下,负数表示向上 <br> 版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_35647781/article/details/77584977 <br> </p> <p class="scroll-wrap" id="wrapScroll"> <span></span> </p> </p>
로그인 후 복사
css 구조
.content{ width: 500px; height: 400px; border:1px solid; overflow: hidden; padding:40px; margin:50px auto; position: relative; } .scroll-wrap{ position: absolute; width: 10px; height: 100%; background: #d8d4d4; top:0; right:0; } .scroll-wrap span{ display: block; width: 5px; height: 100px; background: red; border-radius: 10px; margin:0 auto; position: relative; }
로그인 후 복사
js code
<script> var wrapScroll=document.getElementById("wrapScroll") var tapScroll=wrapScroll.getElementsByTagName("span")[0]; var contentIn=document.getElementById("countent"); var content=document.getElementById("content") tapScroll.onmousedown=function(){ var e=e||window.event; var dowY=e.pageY-this.offsetTop; document.onmousemove=function(e){ var ev=e||window.event; var movY=ev.pageY-dowY; conmon(movY) } document.onmouseup=function(){ document.onmousemove=null; } } content.onmousewheel=function(event){ var stemp=tapScroll.offsetTop-content.offsetTop+50; conmon(stemp) } function conmon(num){ var dela=wheel(event) num=num<0?0:num; var c=wrapScroll.offsetHeight-tapScroll.offsetHeight dela>0?num-=10:num+=10; num=num>c?c:num tapScroll.style.top=num+"px"; var speed=(contentIn.offsetHeight-content.offsetHeight)/c+0.2; console.log(speed) contentIn.style.marginTop=-(speed*num)+"px" } //滚轮事件封装 function wheel(event){ var e=event||window.event; var delta=0;//次数 if(e.wheelDelta){ delta=e.wheelDelta/120; }else if(e.detail){ delta=e.detail/3; } if(e.preventDefault){ e.preventDefault() } return delta } </script>
로그인 후 복사
관련 권장 사항:
CSS3 사용자 정의 스크롤에 대한 자세한 설명 바 스타일 글쓰기
위 내용은 사용자 정의 스크롤 막대: html, css, js 코드에 대한 별도의 구현 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

인기 기사
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

인기 기사
Repo : 팀원을 부활시키는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌
스플릿 소설을이기는 데 얼마나 걸립니까?
3 몇 주 전
By DDD
헬로 키티 아일랜드 어드벤처 : 거대한 씨앗을 얻는 방법
3 몇 주 전
By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 기사 태그

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제
Gmail 이메일의 로그인 입구는 어디에 있나요?
7297
9


자바 튜토리얼
1622
14


Cakephp 튜토리얼
1342
46


라라벨 튜토리얼
1259
25


PHP 튜토리얼
1206
29

