博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
返回顶部的js实现
阅读量:6685 次
发布时间:2019-06-25

本文共 3421 字,大约阅读时间需要 11 分钟。

原文链接:

点击这里“返回顶部”字样的按钮后,页面就像是抹了润滑剂一样,倏地一声就滑到顶部了,同时,该点击按钮也玩起了躲猫猫 – 不见了。

实现的原理嘛,恩……估计鲜有人关心,所以我也懒得浪费口水了,直接上代码。

无论是这里的jQuery实现还是MooTools实现,下面的CSS代码都是一致的,如下:

.backToTop {
display: none; width: 18px; line-height: 1.2; padding: 5px 0; background-color: #000; color: #fff; font-size: 12px; text-align: center; position: fixed; _position: absolute; right: 10px; bottom: 100px; _bottom: "auto"; cursor: pointer; opacity: .6; filter: Alpha(opacity=60);}

 

(function() {var $backToTopTxt = "返回顶部", $backToTopEle = $('
').appendTo($("body")).text($backToTopTxt).attr("title", $backToTopTxt).click(function() {$("html, body").animate({ scrollTop: 0 }, 120);}), $backToTopFun = function() {var st = $(document).scrollTop(), winh = $(window).height();(st > 0)? $backToTopEle.show(): $backToTopEle.hide();//IE6下的定位if (!window.XMLHttpRequest) {$backToTopEle.css("top", st + winh - 166);}};$(window).bind("scroll", $backToTopFun);$(function() { $backToTopFun(); });})();

寥寥十几行代码就实现了全部的交互细节了。您可以将上面代码直接拷贝到您的JavaScript文件中,页面就有效果啦!对了,请使用jQuery 1.4+。

这里注意脚本的引用位置哦如果按照上面的引用 需要把他放置在body里面或者下面任何地方,如果需要引用到head上面把上面的脚本需要放置到$(document).ready(function(){........})

在IE6下有抖动的问题 解决办法如下:

 

* html,* html body {
background-image:url(about:blank);background-attachment:fixed;}

 下面我们来解决“抖动”问题:引用

  显然IE有一个多步的渲染进程。当滚动或调整浏览器大小的时候,它将重置所有内容并重画页面,这个时候它就会重新处理css表达式。这会引起一个丑陋 的“抖动”bug,在此处固定位置的元素需要调整以跟上(页面的)滚动,于是就会“抖动”。(仅用上面的代码时,就会出现这样的抖动。)

  解决此问题的技巧就是使用background-attachment:fixed为body或html元素添加一个background-image。这就会强制页面在重画之前先处理CSS。因为是在重画之前处理CSS,也就会同样在重画之前首先处理你的CSS表达式。从而实现完美平滑的固定位置元素!

  作者(原文位置:)还发现了另外一个小技巧:根本无需一个真实的图片!可以使用一个about:blank替代一个spacer.gif图片,而且它工作的同样出色。

CSS CODE:

.fixed-top {
position:fixed;bottom:auto;top:0px;}.fixed-bottom {
position:fixed;bottom:0px;top:auto;}.fixed-left {
position:fixed;right:auto;left:0px;}.fixed-right {
position:fixed;right:0px;left:auto;}* html,* html body {
background-image:url(about:blank);background-attachment:fixed;}* html .fixed-top {
position:absolute;bottom:auto;top:expression(eval(document.documentElement.scrollTop));}* html .fixed-right {
position:absolute;right:auto;left:expression(eval(document.documentElement.scrollLeft+document.documentElement.clientWidth-this.offsetWidth)-(parseInt(this.currentStyle.marginLeft,10)||0)-(parseInt(this.currentStyle.marginRight,10)||0));}* html .fixed-bottom {
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)));}* html .fixed-left {
position:absolute;right:auto;left:expression(eval(document.documentElement.scrollLeft));}

 经过整理如下

* html,* html body {
background-image:url(about:blank);background-attachment:fixed;}.backToTop {
border:1px solid red; display: block; width: 18px; line-height: 1.2; padding: 5px 0; background-color: #000; color: #fff; font-size: 12px; text-align: center; position: fixed; _position: absolute; right: 10px; bottom: 100px; _top:expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-150)); cursor: pointer; opacity: .6; filter: Alpha(opacity=60); z-index:9999999;}

去掉上面js段落中的

//IE6下的定位if (!window.XMLHttpRequest) {$backToTopEle.css("top", st + winh - 166);

转载地址:http://dgqao.baihongyu.com/

你可能感兴趣的文章
mysqldump
查看>>
Python操作MySQL数据库9个实用实例
查看>>
Nuget4.0 bug一粒
查看>>
MVC的项目部署成应用程序或虚拟目录路径的问题
查看>>
[c#] Html Agility Pack 解析HTML
查看>>
Python学习(25):Python执行环境
查看>>
生活中的巧思与发现笔记——读书笔记
查看>>
设计模式之二十一:中介者模式(Mediator)
查看>>
javascript go()函数
查看>>
UML类图与类的关系详解
查看>>
C#结构函数
查看>>
springmvc+spring+mybatis+maven项目构建
查看>>
Android菜鸟的成长笔记(28)——Google官方对Andoird 2.x提供的ActionBar支持
查看>>
C# params关键字
查看>>
[Angular] Router outlet events
查看>>
OpenCV 玩九宫格数独(二):knn 数字识别
查看>>
hdu 1233 还是畅通project(kruskal求最小生成树)
查看>>
cocos2dx3.0 2048多功能版
查看>>
系统垃圾清理利器CCleaner v5.30.6063绿色单文件版(增强版)
查看>>
自然语言交流系统 phxnet团队 创新实训 个人博客 (六)
查看>>