로켓 아이콘을 클릭하는 효과 설정 jquery 스크롤을 맨 위로 JS 코드로 다시 설정

이 글에서는 워드프레스 테마 에서 "로켓 아이콘을 클릭하여 맨 위로 돌아가는" 효과를 구현하는 방법을 설명합니다.

  • WordPress 전문가라면 WordPress 테마로 이식하는 방법을 알고 있습니다.
  • 이 글도 어울리네요웹사이트를 구축초보자.

로켓 상승 맨 위로 사진으로 돌아가기

로켓이 다시 정상으로 올라가는 모습을 보여주는 이미지를 클릭하세요.

위 이미지를 미리 다운받아 테마 디렉토리 아래의 이미지 폴더에 넣는 것을 권장합니다.

1단계: jQuery 라이브러리 파일 로드

  • jQuery 라이브러리 파일을 로드합니다. WordPress 테마가 이미 로드된 경우 이 단계를 무시할 수 있습니다.

워드프레스는 제3자 jQuery 라이브러리를 소개합니다. 이 튜토리얼을 확인하세요 ▼

2단계: footer.php 파일에 코드 추가

테마 footer.php의 해당 위치에 다음 코드를 추가합니다 ▼

<div class="one"></div>
<div id="backtotop" style="display:none;"></div>

3단계: CSS 파일에 코드 추가

테마의 style.css 파일에 다음 CSS 코드 추가 ▼

.one {width:100%;height:3000px;}
#backtotop {background:url(images/rocket_up.png) 0px 0px no-repeat;position:fixed;bottom:0px;right:10px;width:149px;height:260px;cursor: pointer;z-index:1000;}

4단계: 맨 위로 JS 코드 추가

다음 js 코드의 경우 다른 js 파일을 생성할 수 있습니다.

또는 기존 테마의 관련 js 파일에 병합합니다(권장).

또는 footer.php로 감쌀 수 있습니다. 중간 ▼

var scrollTT = {
tTSpeed : 800, // 滚动到顶部的时间
startFlyTime : 1000, // 火箭起飞的时间
restartTime : 1200, // 重置火箭位置的时间
flySpeed : 50, // 火箭向上飞行的速度
obj : $("#backtotop"), // 回到顶部的dom
flyTemp : '', // 一个setInterval的临时变量
/**
* 
* 初始化 scrollTT 函数
* 主要是像对象添加事件
*
*/
init : function( obj, tTSpeed, startFlyTime, restartTime, flySpeed ) {
scrollTT.tTSpeed = scrollTT.tTSpeed || tTSpeed;
scrollTT.startFlyTIme = scrollTT.startFlyTIme || startFlyTime;
scrollTT.restartTime = scrollTT.restartTime || restartTime;
scrollTT.flySpeed = scrollTT.flySpeed || flySpeed;
scrollTT.obj = scrollTT.obj || obj;

// 向window 绑定scroll 事件
scrollTT.onScroll();


scrollTT.obj.click(function(){
// 关闭默认的scroll事件
$(window).off("scroll");
// 页面向上滚动
$('html,body').animate({scrollTop: '0px'}, this.tTSpeed);
// 火箭向上飞行
scrollTT.objFly();
// 火箭的喷气效果
scrollTT.blow();

});

// 鼠标在火箭上的效果
scrollTT.obj.mouseenter(function() {
$(this).css('background-position', '-149px 0px');
});
// 鼠标移开的效果
scrollTT.obj.mouseleave(function() {
$(this).css('background-position', '0px 0px');
});

}, 
/*
* 向window 绑定scroll 事件
*
*/
onScroll : function() {
$(window).on('scroll', function() {
if ($(window).scrollTop()>500){
scrollTT.obj.fadeIn(500);
}else{
scrollTT.obj.fadeOut(1500);
}
});
},
/**
* dom对象向上飞行
*
*/
objFly : function() {
var fly = setTimeout(function(){
scrollTT.obj.animate({top: '-500px'} ,'normal', 'swing');
scrollTT.resetFly();
clearTimeout(fly);
clearInterval(scrollTT.flyTemp);
}, scrollTT.startFlyTime);
},
/**
* dom 对象飞行完毕回到原来的位置
*
*/
resetFly : function() {
var fly2 = setTimeout(function() {
scrollTT.obj.hide();
scrollTT.obj.css("top", 'auto');
scrollTT.obj.css("background-position", '0px 0px');
scrollTT.onScroll();
clearTimeout(fly2);
},scrollTT.restartTime);
},
/**
* dom 对象的喷气效果
*
*/
blow : function() {
var topPosiiton = -149;
scrollTT.flyTemp = setInterval(function() {
topPosiiton += -149;
if(topPosiiton < -743) {
topPosiiton = -149
}
scrollTT.obj.css('background-position', topPosiiton + 'px 0px');
}, this.flySpeed);
}
};

scrollTT.init();

 

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

위쪽으로 스크롤