>  기사  >  웹 프론트엔드  >  맨 위로 돌아가기 효과의 JavaScript 구현 예

맨 위로 돌아가기 효과의 JavaScript 구현 예

黄舟
黄舟원래의
2017-11-16 16:30:041406검색

저희 개발 작업에서 JavaScript는 꼭 필요한 부분이라고 할 수 있습니다. JavaScript를 사용하여 맨 위로 돌아가는 코드를 구현하는 경우가 종종 있을 것입니다. 오늘은 이 기능을 제공하겠습니다. 자세한 소개는 Back to Top 효과의 JavaScript 구현 예입니다!

네이티브 js를 사용하면 간단하게 맨 위로 돌아가는 효과를 얻을 수 있습니다. 요구 사항은 비교적 명확합니다. 1. 버튼 표시 및 숨기기. 2. 중간에 onscroll 지우기를 다시 실행합니다. 타이머 (아직 구현되지 않았습니다. 알려주시기 바랍니다)

코드:

<!-- 
Time:2016.8.4
author:Joel

Dom操作
1.document.getElementById    根据ID获取标签元素
2.document.documentElement.scrollTop    .ie滚动条数值
3.document.body.scrollTop  .chrome
4.document.documentElement.clientHeight  可视区域高度

事件运用
1.window.onload  加载完毕触发事件
2.onclick  点击触发事件
3.window.scroll  滚动条触发事件

定时器
1.setInterval()
2.clearInterval() 
-->

<!doctype html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>Document</title>
	<style type="text/css">
		.btn:hover{
			background: blue;
		}
		.btn{
			display: none;
			height: 40px;
			width: 40px;
			background: red;
			position: fixed;
			left: 1410px;
			top: 600px;
		}
		.image{
			width: 1190px;
			margin:0 auto;
		}
	</style>
	<script type="text/javascript">
	      window.onload = function(){
		  var myBtn = document.getElementsByClassName("btn");
		  var clientHeight = document.documentElement.clientHeight;
          var timer = null;

		  window.onscroll = function(){
		  	var osTop = document.documentElement.scrollTop || document.body.scrollTop;

		  	if(osTop > clientHeight){
		  		myBtn[0].style.display = "block";
		  	}
		  	else{
		  		myBtn[0].style.display = "none";
		  	}
		    }
		    myBtn[0].onclick = function(){
		  	clearInterval(timer);
		  	timer = setInterval(function(){
              var osTop = document.documentElement.scrollTop || document.body.scrollTop;
              var spd = Math.floor((-osTop) / 1000);

              document.documentElement.scrollTop = osTop + spd;
              document.body.scrollTop = osTop + spd;

              if(osTop == 0){
              	clearInterval(timer);
              }
		  	},30);
		  }
	    }
	</script>
</head>
<body>
	<a href="javascript:;" class="btn">按钮</a> 
	<p class="image">
	  <img src="tb_bg.jpg" alt="">
	</p>
</body>
</html>

요약:
1. 렌더링 DOM 흐름 순서대로, hover는 a 앞에 쓰여진 경우에만 적용되며, 그렇지 않으면 덮어쓰게 됩니다.

2. 다양한 속성 메소드 사용 및 간단한 캡슐화.

3.getElementsByClassName은 nodelist를 반환하므로 배열 형태를 사용합니다.

4. 다른 브라우저에서의 호환성 문제의 경우 탭 키의 종속성을 버리고 대신 공백 두 개를 사용하십시오.

5. emmet 플러그인 설치 및 사용.

6. jq에서 제공하는 애니메이션을 사용하면 위로 돌아가는 효과를 더 쉽게 얻을 수 있습니다. 앵커 포인트 방법은 특정 상황에서도 사용할 수 있습니다. 문제는 일부 세부 정보가 브라우저 입력 필드에 표시된다는 것입니다.

관련 권장 사항:

JS를 사용하여 위로 가기 효과 구현

JS 스크롤 이벤트 window.onscroll 및 위치: 맨 위로 돌아가기 구성 요소를 쓰도록 수정됨 그 IE6

javascript - iframe 외부에서 iframe의 콘텐츠를 다시 맨 위로 가져오는 방법

위 내용은 맨 위로 돌아가기 효과의 JavaScript 구현 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.