[原创作品]web网页中的描点

  因为近来在从事web前端开发的工作,所以写的文章也都是关于web这一块。以后将分享算法和web高级编程的内容,很多公司的web前端不够重视,以为是很low-level,给的待遇也很一般,其实,这都是很狭隘的理解。软件开发是一种很谨慎的工作,每一个环节都需要足够的重视。好了,不扯淡。需要扯淡的,点击左边信息栏加群按钮。

  今天分享的内容是网页描点效果,就是在网页滚动到某个位置时,菜单有相应的变化。如图,

就是在滚动时,菜单会有相应的选中效果,点击菜单时,定位到网页内容。

菜单代码:

1         <ul class="menu">
2             <li><a href="#about-us">关于我们</a></li>
3             <li><a href="#dynamic">动态</a></li>
4             <li><a href="#case">案例</a></li>
5             <li><a href="#service">服务</a></li>
6             <li class="select"><a href="#index">首页</a></li>
7         </ul>

描点的话就是在网页相应的位置加上id属性,这里是在section标签加的id,就行。重点看js代码:

 1    $(window).scroll(function () {
 2
 3             $(‘section[id]‘).each(function(){
 4                 var id = $(this).attr(‘id‘);
 5                 var offsetTop = document.getElementById(id).getBoundingClientRect().top;
 6                 var offsetBtm = document.getElementById(id).getBoundingClientRect().bottom;
 7
 8                 if(offsetTop < 0 && offsetBtm > 0) {
 9                     $(‘.menu li a[href]‘).parent().removeClass(‘select‘);
10                     $(‘.menu li a[href=#‘+id+‘]‘).parent().addClass(‘select‘);
11                 }
12             });
13
14         });

  上面代码中getBoundingClientRect()的作用的将选取的dom元素作为矩形,其相对的位置是浏览器窗口的大小。.top是dom元素上边距距离浏览器窗口上边的距离,.bottom是dom元素下边距距离窗口上边距的距离。说白了,就是以浏览器左边,上边为基准。还有.left, .right,这个,博友应该明白什么意思了。当上边距小于等于0,且下边距大于0说明该元素在当前浏览器视图中。改变菜单的选中状态。

  因为a标签在li里面,而选中状态在li class="select",所以点击时应该这样写,

1   $(‘.menu li‘).click(function(){
2             window.location = $(this).find(‘a‘).attr(‘href‘);
3             $(this).siblings().removeClass(‘select‘);
4             $(this).addClass(‘select‘);
5         });

就是加上window.location,让页面跳转到相应的元素。

好了,这部分不是难点,不做多余解释。原创作品,转载请注明出处:http://zhutty.cnblogs.com

时间: 2024-08-19 20:44:13

[原创作品]web网页中的描点的相关文章

Web网页中添加视频播放处理

最近刚好做一个网站视频播放的功能,在此总结: 自己的方法(支持mp4,ogg,mvk格式): <%--宣传视频--%> <!-- One Third Box Start --> <%--属性 值 描述--%> <%--autoplay autoplay 如果出现该属性,则视频在就绪后马上播放.--%> <%--controls controls 如果出现该属性,则向用户显示控件,比如播放按钮.--%> <%--height pixels 设

使用千位分隔符(逗号)表示web网页中的大数字

做手机端页面我们常常遇到数字,而在Safari浏览器下这些数字会默认显示电话号码,于是我们就用到了补坑的方法加入<meta>标签: <meta name="format-detection" content="telephone=no">这个标签的意义在于将数字不被看成电话号码,于是就万事大吉了O(∩_∩)O,但是如果是一个订餐电话,那么在加入这个标签之后,订餐电话就变成了数字,就不能直接拨号了于是乎我们想到了用千位符老表示数字从而区分电话号

将Web网页转化为用户控件

将Web网页转化成用户控件,需要进行以下操作: 1.在.asp(Web网页的扩展名)文件的HTML视图中,删除<html>.<head>.<body>以及<form>等标记. 2.将@Page指令修改为@Control,并将Codebehind属性修改成以.ascx.cs为扩展的文件.例如: 原Web网页中的代码如下: <%@ Page Language="C#" AutoEventWireup="ture" C

[原创]java WEB学习笔记38:EL 中的 11个 隐含对象 详解

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------

如何用web api在网页中嵌入二维码?

如何用web api在网页中嵌入二维码? 随着智能手机和平板电脑的日益普及,二维码逐渐成了链接智能终端和传统网站的桥梁.在下文中,笔者将介绍几个实时生成二维码的web api,希望能够简化web design过程中的二维码集成工作. 1. 范例一 <img src="http://qrickit.com/api/qr?d=http://www.taobao.com" > 上述代码产生如下的二维码图片: 该web api还支持下面的这些特性, 说明文字:例如addtext=H

怎样把报表放到网页中显示(Web页面与报表简单集成样例)

1.问题描写叙述 如今用户开发的系统基本上趋向于BS架构的浏览器/server模式.这些系统可能由不同的语言开发.如HTML.ASP.JSP.PHP等.因此须要将制作好的报表嵌入到这些页面中. FineReport制作出的报表能够通过Frame框架集成到Web页面中. 2.将报表显示在Frame框架内 2.1集成方法 报表作为页面的一部分,能够以iFrame方式嵌入在网页中.指定iFrame的src就可以. 1.     <iframe id="reportFrame" widt

如何把报表放到网页中显示(Web页面与报表简单集成例子)

1.问题描述 现在用户开发的系统基本上趋向于BS架构的浏览器/服务器模式,这些系统可能由不同的语言开发,如HTML.ASP.JSP.PHP等,因此需要将制作好的报表嵌入到这些页面中. FineReport制作出的报表可以通过Frame框架集成到Web页面中. 2.将报表显示在Frame框架内 2.1集成方法 报表作为页面的一部分,可以以iFrame方式嵌入在网页中,指定iFrame的src即可. 1.     <iframe id="reportFrame" width=&quo

在网页中编辑报表的报表设计器Stimulsoft Reports Designer.Web报表控件

Stimulsoft Reports Designer.Web报表控件是一款网页报表设计器.您想在网页中编辑您的报表吗?现在是可能的! Stimulsoft Reports Designer.Web -是第一款使您可以完全在网页中编辑报表的报表设计器.在您的客户端机器里不需要安装.Net框架.ActiveX控件或其他特殊的插件.您只需要一个Web浏览器. Stimulsoft Reports Designer.Web是新式和便捷的接口并且功能丰富以及工作快速. 操作简单将报表编辑的支持添加到您的

2017-3-23 网页中的表单 框架 标题栏小图标 描点 插入视频音频 简单的滚动条

(一)表单 1.<form action=""method="get/post"></form> 2.表单12个元素 文本类: <input type="text" value=""> - 文本框 <input type="password" value=""> - 密码框 <textarea></textarea>