前面分享了两篇有关《 jQuery 仿极客公园火箭发射“返回顶部”效果》的文章,如果你是Word-Press 老手,肯定知道如何移植到WordPress主题中;本文针对的是新手,如果你想在你的WordPress主题中实现这个效果,那就往下看吧!
建议先看一下下面的文章——如果你还没有看过的话:
教程如下(代码来源于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(); |
虽然知道这是个老帖子了,但还是不得不感谢分享啦~(正准备仿那个效果就无意间看到了这个)
←请大家看看效果如何?O(∩_∩)O~
我想找人将火箭改成飞碟的效果,请问是否直接替换图片中的火箭和烟尾?
不好意思,不允许在评论中添加 url
对不起,我不知道您和我一样都有洁癖,网站评论一定是要保持干净清洁的,哈哈哈!
请您回答我这个问题,好吗?非常感谢您!
“我想找人将火箭改成飞碟的效果,请问是否直接替换图片中的火箭和烟尾?”
替换图片后肯定需要更改CSS代码的,因为相对应的css position 已经改变了
您好!感谢您的分享,今天我抽空测试成功了,但是发现这个CSS如果设置height:3000px,页面高度会变得非常长:
.one {width:100%;height:3000px;}
我觉得您也应该改成height:100%,如下:
.one {width:100%;height:100%;}
这个实际使用的话肯定是需要更改相关代码的。
您好!
我想将原来的火箭发射,换成飞碟在“一瞬间飞上天”的效果,可是不知道如何做?
^_^ 能否请您帮忙吗?感激不尽!
不好意思,帮不了。能力不够啊~