45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:怎么样使用Html中锚点?

怎么样使用Html中锚点?

2017-10-23 11:09:42 来源:www.45fan.com 【

怎么样使用Html中锚点?

现在总结一下控制锚点的几种情况:

1. 在同一页面中

<a name="add"></a><!-- 定义锚点 -->
<a href="#add">跳转到add</a>

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

<a href="a.html#add">跳转到a.add</a>

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

第一种:

<a href="#add" onclick="add()">触发add函数并跳转到add锚点</a>

第二种:

<div id="divNode"><!-- contents --></div><!-- 假设一个需要跳转到的节点 -->
<a href="#" onclick="document.getElemetnById('divNode').scrollIntoView(true);return false;">通过scrollIntoView实现锚点效果</a> 

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

1、使用id定位:

<a href="#1F" name="1F">锚点1</a> 
<div name="1F"> 
<p> 
11111111111 
</br> 
11111111111 
</br>11111111111 
</br>11111111111 
</br>11111111111 
</br> 
</p> 
</div> 

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

2、使用name定位:

<a href="#5F">锚点5</a> 
</br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br></br> 
<a name="5F">1111111</href> 

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

3、使用js定位

<li class="" onclick="javascript:document.getElementById('here').scrollIntoView()"></li> 

实例:

js 锚点平滑定位

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
  <head>
    <style type="text/css" mce_bogus="1">
      div.test {
        width: 400px;
        margin: 5px auto;
        border: 1px solid #ccc;
      }
       
      div.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;
      }
       
      div.test p {
        height: 400px;
        background: #f1f1f1;
        margin: 0;
      }
    </style>
    <script type="text/javascript">
       
      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);
      }
    </script>
  </head>
  <body>
    <div class="test">
      <a name="header_1" id="header_1"></a>
      <strong onclick="javascript:scroller('header_4', 800);">header_1 --> header_4</strong>
      <p>
      </p>
    </div>
    <div class="test">
      <a name="header_2" id="header_2"></a>
      <strong onclick="javascript:scroller('header_5', 800);">header_2 --> header_5</strong>
      <p>
      </p>
    </div>
    <div class="test">
      <a name="header_3" id="header_3"></a>
      <strong onclick="javascript:scroller('header_6', 800);">header_3 --> header_6</strong>
      <p>
      </p>
    </div>
    <div class="test">
      <a name="header_4" id="header_4"></a>
      <strong onclick="javascript:scroller('header_7', 800);">header_4 --> header_7</strong>
      <p>
      </p>
    </div>
    <div class="test">
      <a name="header_5" id="header_5"></a>
      <strong onclick="javascript:scroller('header_3', 800);">header_5 --> header_3</strong>
      <p>
      </p>
    </div>
    <div class="test">
      <a name="header_6" id="header_6"></a>
      <strong onclick="javascript:scroller('header_2', 800);">header_6 --> header_2</strong>
      <p>
      </p>
    </div>
    <div class="test">
      <a name="header_7" id="header_7"></a>
      <strong onclick="javascript:scroller('header_1', 800);">header_7 --> header_1</strong>
      <p>
      </p>
    </div>
  </body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持路饭。


本文地址:http://www.45fan.com/a/question/92969.html
Tags: html 动力 中锚点
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部