在网页中经常用到锚点,特别是在比较长的页面中锚点的使用会增加用户体验,现在php中文网介绍html 锚点三种实现方法

1. 在同一页面中

跳转到add

2. 在不同页面中,锚点定位在a.html中,从另外一个页面的链接跳转到这个锚点

跳转到a.add

3. 点击链接触发js事件,同时跳转到锚点,有两种处理方式:

第一种:

触发add函数并跳转到add锚点

第二种:

通过scrollIntoView实现锚点效果

在html中设置锚点定位有几种方法,使用id定位、使用name定位、使用js定位,这些方法不一定是最全的,只可以参考下

1、使用id定位:

锚点1

11111111111

11111111111

11111111111

11111111111

11111111111

这样的定位可以针对任何标签来定位。

2、使用name定位:

锚点5

1111111

使用name属性只能针对a标签来定位,而对p等其他标签就不能起到定位作用。

3、使用js定位

实例:

js

锚点平滑定位

p.test {

width: 400px;

margin: 5px auto;

border: 1px solid #ccc;

}

p.test strong {

font-size: 16px;

background: #fff;

border-bottom: 1px solid #aaa;

margin: 0;

display: block;

padding: 5px 0;

text-decoration: underline;

color: #059B9A;

cursor: pointer;

}

p.test p {

height: 400px;

background: #f1f1f1;

margin: 0;

}

function intval(v){

v = parseInt(v);

return isNaN(v) ? 0 : v;

} // ?取元素信息

function getPos(e){

var l = 0;

var t = 0;

var w = intval(e.style.width);

var h = intval(e.style.height);

var wb = e.offsetWidth;

var hb = e.offsetHeight;

while (e.offsetParent) {

l += e.offsetLeft + (e.currentStyle ? intval(e.currentStyle.borderLeftWidth) : 0);

t += e.offsetTop + (e.currentStyle ? intval(e.currentStyle.borderTopWidth) : 0);

e = e.offsetParent;

}

l += e.offsetLeft + (e.currentStyle ? intval(e.currentStyle.borderLeftWidth) : 0);

t += e.offsetTop + (e.currentStyle ? intval(e.currentStyle.borderTopWidth) : 0);

return {

x: l,

y: t,

w: w,

h: h,

wb: wb,

hb: hb

};

} // ?取??条信息

function getScroll(){

var t, l, w, h;

if (document.documentElement && document.documentElement.scrollTop) {

t = document.documentElement.scrollTop;

l = document.documentElement.scrollLeft;

w = document.documentElement.scrollWidth;

h = document.documentElement.scrollHeight;

}

else

if (document.body) {

t = document.body.scrollTop;

l = document.body.scrollLeft;

w = document.body.scrollWidth;

h = document.body.scrollHeight;

}

return {

t: t,

l: l,

w: w,

h: h

};

} // ?点(Anchor)?平滑跳?

function scroller(el, duration){

if (typeof el != 'object') {

el = document.getElementById(el);

}

if (!el)

return;

var z = this;

z.el = el;

z.p = getPos(el);

z.s = getScroll();

z.clear = function(){

window.clearInterval(z.timer);

z.timer = null

};

z.t = (new Date).getTime();

z.step = function(){

var t = (new Date).getTime();

var p = (t - z.t) / duration;

if (t >= duration + z.t) {

z.clear();

window.setTimeout(function(){

z.scroll(z.p.y, z.p.x)

}, 13);

}

else {

st = ((-Math.cos(p * Math.PI) / 2) + 0.5) * (z.p.y - z.s.t) + z.s.t;

sl = ((-Math.cos(p * Math.PI) / 2) + 0.5) * (z.p.x - z.s.l) + z.s.l;

z.scroll(st, sl);

}

};

z.scroll = function(t, l){

window.scrollTo(l, t)

};

z.timer = window.setInterval(function(){

z.step();

}, 13);

}

header_1 --> header_4

header_2 --> header_5

header_3 --> header_6

header_4 --> header_7

header_5 --> header_3

header_6 --> header_2

header_7 --> header_1

php页面锚点,html 锚点三种实现方法相关推荐

  1. php页面底部信息居中,css底部如何局中?css三种居中方法

    本篇文章给大家带来的内容是关于css底部如何局中?css三种居中方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 某天组长让我改一个表格的样式,要求底部局中.当时想很简单的嘛,哼哧 ...

  2. 在web页面上快速生成二维码的三种实用方法

    转载自:在web页面上快速生成二维码的三种实用方法 二维码是桌面和移动端快速分享的高效手段之一,这里介绍两个不错的快速开发二维码的方法,和大家分享一下~~ 方法1:使用极客标签提供的二维码快速生成服务 ...

  3. 多iframe下的html同名id,获得同级iframe页面的指定ID元素的几种实现方法

    1.JS实现: var object= window.parent.frames("要获得的iframe的name").contentDocument.getElementById ...

  4. 将python中的小数直接进位的函数_python保留小数位的三种实现方法

    python保留小数位的三种实现方法 前言 保留小数位是我们经常会碰到的问题,尤其是刷题过程中.那么在python中保留小数位的方法也非常多,但是笔者的原则就是什么简单用什么,因此这里介绍几种比较简单 ...

  5. php递归实现sum函数,php递归函数三种实现方法及如何实现数字累加

    搜索热词 递归函数在编程中是比较常用的一类函数,其特点是函数自身可以调用自身,但是必须在调用自身前有条件判断,否则会导致无限调用下去.本文列出了三种递归函数实现方法,第一种利用引用做参数,第二种利用全 ...

  6. html confirm位置,js确认框confirm()三种使用方法

    先为大家介绍javascript确认框的三种使用方法,具体内容如下 第一种方法:挺好用的,确认以后才能打开下载地址页面.原理也比较清晰.主要用于删除单条信息确认. 调用方法: 第三种方法:主要用于批量 ...

  7. 【wangEditor富文本编辑器】富文本三种使用方法,html使用富文本,html套vue脚手架使用富文本,vue使用富文本【简单易用,复制即用】

    前言 富文本编辑器功能是很多人都要使用的 市面上有很多的编辑器可以供选择,但是很多编辑器会有点复杂,或者文档看起来难受. 我最近做了一个需求,是需要在html文件上写富文本编辑器. 但是我看了以前用的 ...

  8. PHP开发之递归算法的三种实现方法

    递归算法对于任何一个编程人员来说,应该都不陌生.因为递归这个概念,无论是在PHP语言还是Java等其他编程语言中,都是大多数算法的灵魂.对于PHP新手来说,递归算法的实现原理可能不容易理解.但是只要你 ...

  9. 黑马程序员_Java解析网络数据流的三种特殊方法

    Java解析网络数据流的三种特殊方法 Java作为最开放的语言,已越来越受到网络程序员的青睐.但这一青睐族有着同样的经历--曾经都为网络上通信的Java数据格式而烦恼. 笔者也不例外,曾经为此而查阅了 ...

最新文章

  1. 查看mali ddk 版本_2019年CPU排行榜,阅读文章查看你的手机CPU还在线上吗
  2. confluence6.15.4部署及问题汇总
  3. selenium选中某个控件敲击键盘
  4. Python 中多线程共享全局变量的问题
  5. 编译原理之正则表达式
  6. python访问数据库
  7. Android手机截屏
  8. myknn() takes no arguments_遇见姻缘NO.313[上海相亲男]天津大学毕业,金融工程师,喜欢看书、爬山、吉他...
  9. MVC之使用Nhibernate
  10. Atitit. 单点登录sso 的解决方案 总结
  11. JS下滑菜单,向下滑出二级导航
  12. CleanMyMac X的免费版电脑系统瘦身工具
  13. Base64使用案例
  14. matlab 坐标不用科学计数法,matlab不用科学计数法
  15. user-scalable=no 控制手机版浏览器网页分辨率
  16. AD域外计算机共享域内打印机出现“无法访问,没有权限访问网络资源,用户不得从此工作站登录网络”
  17. 关于订单支付成功后一些逻辑的处理
  18. 围城下的物业与业主的困兽之斗
  19. java获取分贝_android 声音强度、分贝 大小检测 源码下载(as版)
  20. 计算机管理中看不到本地用户,Win7系统计算机管理中没有本地用户和组怎么办...

热门文章

  1. C语言字符串查找系列
  2. 理解cv2.waitKey
  3. python vs Java(谁更胜一筹)
  4. webstorm 安装vue
  5. 自我成长之一:SpringCloud学习之路
  6. C# 使用JObject解析嵌套json
  7. linux 返回上一级目录 和 返回根目录
  8. input限制输入数字减号_修正带有尾随减号的数字
  9. 通达OA二次开发 开发基于AJAX技术数据列表控件的智能表单(图文)
  10. C语言中没有字符串类型怎么办?