对于页面内容比较长的网站,返回顶部的功能是比较需要的。网上的实现方法也不少,包括用百度新闻中的JS脚本的,还有用JQuery的,现在分享如下。
1. 在style.css中添加如下代码
#gotop{ width:38px; height:36px; position:fixed; bottom:25px; right:10px; top:auto; display:block; cursor:pointer; background: url(myimages/top.gif) no-repeat } *html #gotop{ position:absolute; bottom:auto; top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0))); }
其中,bottom和right属性可以控制按钮图片在右下角的位置,background属性可以修改返回顶部的图片。
2. 在footer.php中添加如下代码
其中,主要解决了Chrome浏览器不识别document.documentElement.scrollTop的问题,从网上找了相关的处理方法,说是使用
document.documentElement.scrollTop+document.body.scrollTop
来解决问题。然后我修改了代码,具体是第7、13、14、15、18行,完成了对Chrome浏览器的兼容。
3. 添加返回顶部按钮图片,网上搜索各式各样,可以用自己的图片替换。如第一步中的background属性,把top.gif放到主题目录中存放图片的目录下。
通过对第二节的第18行代码中
d.scrollTop+b.scrollTop>100
部分进行修改,可以实现滚动屏幕到达某个位置之后再显示向上按钮,如果去掉“>100”之后,则是在屏幕滚动时立刻显示向上按钮。
另一种方法,就是目前本站用的:可变透明度的jQuery响应式返回顶部代码
jQuery可变透明度返回顶部代码,如果向下滚动超过1200像素,按钮的透明度会下降,减少视觉干扰,更便于浏览内容主体,非常贴心的用户体验,兼容主流浏览器。
使用方法:
1、在head区域引入样式表文件sucaijiayuan.css
.cd-top { display: inline-block; height: 30px; width: 30px; position: fixed; bottom: 36px; right: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.05); /* image replacement properties */ overflow: hidden; text-indent: 100%; white-space: nowrap; background: rgba(112, 165, 203, 0.8) url(../images/cd-top-arrow.svg) no-repeat center 50%; visibility: hidden; opacity: 0; -webkit-transition: all 0.3s; -moz-transition: all 0.3s; transition: all 0.3s; } .cd-top.cd-is-visible { /* the button becomes visible */ visibility: visible; opacity: 1; } .cd-top.cd-fade-out { /* 如果用户继续向下滚动,这个按钮的透明度会变得更低 */ opacity: .5; } .no-touch .cd-top:hover { background-color: #e86256; opacity: 1; } @media only screen and (min-width: 768px) { .cd-top { right: 20px; bottom: 56px; } } @media only screen and (min-width: 1024px) { .cd-top { height: 40px; width: 40px; right: 30px; bottom: 46px; } }
2、在head区域引入jquery.min.js和sucaijiayuan.js,注意引入的先后顺序。sucaijiayuan.js代码如下:
jQuery(document).ready(function($){ // browser window scroll (in pixels) after which the "back to top" link is shown var offset = 300, //browser window scroll (in pixels) after which the "back to top" link opacity is reduced offset_opacity = 1200, //duration of the top scrolling animation (in ms) scroll_top_duration = 700, //grab the "back to top" link $back_to_top = $('.cd-top'); //hide or show the "back to top" link $(window).scroll(function(){ ( $(this).scrollTop() > offset ) ? $back_to_top.addClass('cd-is-visible') : $back_to_top.removeClass('cd-is-visible cd-fade-out'); if( $(this).scrollTop() > offset_opacity ) { $back_to_top.addClass('cd-fade-out'); } }); //www.sucaijiayuan.com //smooth scroll to top $back_to_top.on('click', function(event){ event.preventDefault(); $('body,html').animate({ scrollTop: 0 , }, scroll_top_duration ); }); });
3、在你的网页中
文章评论
仔细瞧瞧再说!