zoukankan      html  css  js  c++  java
  • jquery 在页面上根据ID定位(jQuery锚点跳转及相关操作) 经典

    1.锚点跳转简介 

    锚点其实就是可以让页面定位到某个位置上的点。在高度较高的页面中经常见到。比如百度的百科页面,wiki中的page内容。

    我知道实现锚点的跳转有两种形式,一种是a标签+name属性;还有一种就是使用标签的id属性。百度百科就是使用a标签的name属性来实现锚点跳转的。

    比如:

    <a href=”#2”>波轮洗衣机介绍</a> <a name=”2”></a>

    但是上种方法使用了一个空标签,而且有时候会出现锚点失效。所以建议采用id来绑定锚点,代码如下:

    <a href=”#2”>波轮洗衣机介绍 <h2 id=”2”>波轮洗衣机介绍</h2>

    2.含锚点跳转的URL地址 

    【1】关于#

    在页面的制作中,”#”的符号很常见,并且具有通用性。基本上,其表示的含义是id选择符。例如:CSS中#header{}就表示id为header的标签的样式如何;在jQuery中,$(“#header”)表示选择id为header的标签为JQuery对象;同样的,在页面的URL中,”#”也可以理解为id选择符之意,也就是页面跳转到含URL指向的id的标签处。

    例如输入一个地址 http://baike.baidu.com/view/121416.htm?pf=1#3

    这个地址中末尾有个”#”,这个就相当于告诉浏览器要跳转了,#后面跟着的3表示会在http://baike.baidu.com/view/121416.htm?pf=1 的页面中寻找符合”#3”特点的标签,并且执行跳转。

    【2】关于空锚点指向

    如果URL中的”#”后面跟随的字符id在文中找不到,就会有两种情况:如果是在当前页面,除了URL地址变化了,其它的不会改变,页面不会有跳转;如果是从其它页面跳转过来,则页面会在顶部显示,”#”基本就是聋子的耳朵——摆设。

    3.JQuery下锚点的平滑跳转 

    对于锚点的平滑跳转,在一般的商业性质的网站上,权衡来说,要谨慎使用。

    例如:让页面平滑滚动到一个id为box的元素处,则JQuery代码只要一句话,关键位置 如下:

    $(“html,body”).animate({scrollTop:$(“#box”).offset().top},1000)

    其中animate为JQuery的自定义动画方法,$(“#box”).offset().top表示id为box的JQuery对象距离页面顶部的偏移值,1000表示平滑动画执行的时间为1000毫秒,也就是1秒。

    4.IE下锚点刷新失效及JQuery下的解决 

    【1】关于锚点刷新失效

    锚点刷新失效就是指当按下刷新键F5时,即使此时URL的后面就随锚点,此锚点也是不起作用的。

    【2】在JQuery中,不难实现。可以根据URL获取锚点,从而进一步获得对应锚点对象,然后再让页面的滚动高度为其距离页面顶部的偏移值就可以了。使得页面无论是重新载入还是其刷新,其后面的锚点都起作用。

    其js代码如下:

    $(function(){
        var url = window.location.toString();
        var id = url.split(“#”)[1];
       if(id){
          var t = $(“#”+id).offset().top;
          $(window).scrollTop(t);
       }
    });
  • 相关阅读:
    python 包管理工具 pip 的配置
    Python 变量作用域 LEGB (下)—— Enclosing function locals
    Python 变量作用域 LEGB (上)—— Local,Global,Builtin
    2020 Java 面试题 小结 (答案慢慢补上,有错误请指出)
    mysql 根据日期(date)做年,月,日分组统计查询
    jvm指令
    正则表达式 分割地址 获取省市区详细地址
    .Net 异常记录
    WCF设计服务协议(一)
    plsql ORA-01789:查询块具有不正确的结果列数
  • 原文地址:https://www.cnblogs.com/phpfensi/p/8349483.html
Copyright © 2011-2022 走看看