一共就两个代码,一个是js加入到你网站main.js主要的js代码文件里面。 另一个是css,也是一样的加到网站后台或者是main.css文件里面都可以。
随着鼠标滚轮的滑动,根据屏幕当前的网页位置来判定你处于网页中的百分比那个地方,鼠标点击一下(hover获取焦点)就会显示一个回顶部提示文字并自动的返回顶部(#)。
为什么我要说明(hover获取焦点),因为有的网友和我说手机浏览器点击返回顶部后,再往下浏览拖动不会显示回来百分比,也正是因为(hover获取焦点)方式,所以需要你再次随便点击一下网页的其它部分就会显示回来了,不过没关系,正常的阅读者应该不会无聊到纠结或者玩这个百分比返回顶部吧!
CSS代码如下:
/*返回顶部%css*/ #backtoTop { background-color:rgba(84,82,82,0.15);/*背景颜色,后面0.15是透明度*/ border-radius:100%; bottom:10%; /*圆角、下距*/ height:33px; position:fixed; right:-100px; width:33px; transition:0.5s; -webkit-transition:0.5s } #backtoTop.button--show { right:2px } /*边距*/ .per { font-size:16px; height:30px; line-height:30px; position:absolute; text-align:center; top:0; width:33px; color:#CD0000; /*文字颜色*/ cursor:pointer } .per:before { content:attr(data-percent) } .per:hover:before { content:"↑"; font-size:15px } /*文字大小*/JS代码如下:
/*百分比返回顶部JS 小辉网*/ var bigfa_scroll = { drawCircle: function(id, percentage, color) { var width = $(id).width(); var height = $(id).height(); var radius = parseInt(width / 2.20); var position = width; var positionBy2 = position / 2; var bg = $(id)[0]; id = id.split("#"); var ctx = bg.getContext("2d"); var imd = null; var circ = Math.PI * 2; var quart = Math.PI / 2; ctx.clearRect(0, 0, width, height); ctx.beginPath(); ctx.strokeStyle = color; ctx.lineCap = "square"; ctx.closePath(); ctx.fill(); ctx.lineWidth = 2; //转动圈线条大小 imd = ctx.getImageData(0, 0, position, position); var draw = function(current, ctxPass) { ctxPass.putImageData(imd, 0, 0); ctxPass.beginPath(); ctxPass.arc(positionBy2, positionBy2, radius, -(quart), ((circ) * current) - quart, false); ctxPass.stroke(); } draw(percentage / 100, ctx); }, backToTop: function($this) { $this.click(function() { $("body,html").animate({ scrollTop: 0 }, 800); return false; }); }, scrollHook: function($this, color) { color = color ? color: "#050505"; $this.scroll(function() { var docHeight = ($(document).height() - $(window).height()), $windowObj = $this, $per = $(".per"), percentage = 0; defaultScroll = $windowObj.scrollTop(); percentage = parseInt((defaultScroll / docHeight) * 100); var backToTop = $("#backtoTop"); if (backToTop.length > 0) { if ($windowObj.scrollTop() > 200) { backToTop.addClass("button--show"); } else { backToTop.removeClass("button--show"); } $per.attr("data-percent", percentage); bigfa_scroll.drawCircle("#backtoTopCanvas", percentage, color); } }); } } $(document).ready(function() { $("body").append('<div id="backtoTop" data-action="gototop"><canvas id="backtoTopCanvas" width="33" height="33"></canvas><div class="per"></div></div>'); var T = bigfa_scroll; T.backToTop($("#backtoTop")); T.scrollHook($(window), "#050505");/*外圈进度条颜色*/ }); /*百分比返回顶部JS,33大小是整个圈圈大小,对应CSS代码也需要修改*/网站页头引入JS和CSS:
<script type="text/javascript" src="css/main.js"></script> <link rel="stylesheet" href="js/main.css" />