jQuery仿极客公园火箭发射“返回顶部”效果(WordPress代码篇)

jQuery仿极客公园火箭发射“返回顶部”效果(WordPress代码篇)

前面分享了两篇有关《 jQuery 仿极客公园火箭发射“返回顶部”效果》的文章,如果你是Word-Press 老手,肯定知道如何移植到WordPress主题中;本文针对的是新手,如果你想在你的WordPress主题中实现这个效果,那就往下看吧!

建议先看一下下面的文章——如果你还没有看过的话:

《 jQuery仿极客公园火箭发射“返回顶部”效果(初始篇)

《 jQuery仿极客公园火箭发射“返回顶部”效果(优化篇)

教程如下(代码来源于andyliu,感谢原作者。):

先提前下载好所需要的上面的图片,点击下载。建议放在主题目录下的images文件夹中。

加载jQuery库文件,如果主题已经加载了,则可以忽略这一步;

在主题的footer.php 的适当位置添加以下代码:

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

将下面的CSS代码加入主题的style.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;}

对于以下js代码,可以另外建立一个js文件,或者合并在已有的主题的相关js文件中(建议),还可以包裹在<script></script>放在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();
评分:
当前平均分 4.80 (89%) - 10 个投票
云左主机 广告
9 条 评论
  1. :twisted: 虽然知道这是个老帖子了,但还是不得不感谢分享啦~(正准备仿那个效果就无意间看到了这个)

    3年前 回复
  2. ←请大家看看效果如何?O(∩_∩)O~

    我想找人将火箭改成飞碟的效果,请问是否直接替换图片中的火箭和烟尾?

    4年前 回复
    • 不好意思,不允许在评论中添加 url

      4年前 回复
      • 对不起,我不知道您和我一样都有洁癖,网站评论一定是要保持干净清洁的,哈哈哈!

        请您回答我这个问题,好吗?非常感谢您!

        “我想找人将火箭改成飞碟的效果,请问是否直接替换图片中的火箭和烟尾?”

        4年前 回复
        • 替换图片后肯定需要更改CSS代码的,因为相对应的css position 已经改变了

          4年前 回复
  3. 您好!感谢您的分享,今天我抽空测试成功了,但是发现这个CSS如果设置height:3000px,页面高度会变得非常长:
    .one {width:100%;height:3000px;}

    我觉得您也应该改成height:100%,如下:
    .one {width:100%;height:100%;}

    4年前 回复
    • 这个实际使用的话肯定是需要更改相关代码的。

      4年前 回复
  4. 您好!

    我想将原来的火箭发射,换成飞碟在“一瞬间飞上天”的效果,可是不知道如何做?

    ^_^ 能否请您帮忙吗?感激不尽!

    4年前 回复
    • 不好意思,帮不了。能力不够啊~

      4年前 回复
发表评论