在制作网页特效可以使用CSS3,也可以编写javascript代码,现在把在工作中常用的有关javascript属性和方法总结一下,希望能对初学者有些帮助。

使用javascript制作网页特效,避免不了要获得元素的大小位置的数据,哪javascript中给我们提供了一些获得宽高位置的属性,主要用的一下家族的属性:

1.offset家族常用属性

  2. scroll家族常用属性

  3. client家族常用属性

现在我就主要来说说offset家族常用属性:

1 offset家族——offsetWidth和offsetHeight

     本身含义:得到对象自己的宽度和高度
     offsetWidth = width + border + padding

1.1offsetWidht和style.width的区别

     style.width只能获得行内样式中的width属性的值,offsetWidth不光可以获得行内样式的值,也可以获得内部样式和外部样式的值。

1.2代码示例

   CSS代码:

    #demo {width: 300px;border: 1px solid red;padding: 10px;margin:15px;}

   HTML代码:

    <div id="demo">asdfasdfasdasdfasdfasdfasdfasdfasdfasdfasdasdfasdfasdfasdfasdfasdfasdfasdasdfasdfasdfasdfasdf</div>

   javascript代码:

    var demo = document.getElementById("demo");console.log(demo.style.width);  // style.width  只能得到行内式console.log(demo.offsetWidth);console.log(demo.offsetHeight);  

2.offset家族——offsetLeft、offsetTop

2.1 offsetLeft、offsetTop

  本身含义:返回距离上级盒子(最近的带有定位)的左边和上边的距离。如果父级都没有定位以body为准。

2.2 代码示例

   CSS代码:

    *{margin: 0px;padding: 0px}#yeye {position: relative;background-color: orange;width: 630px;height: 700px;padding: 100px;}#father {width: 500px;height: 500px;background-color: pink;margin: 100px;margin-left:30px;}#son {width: 200px;height: 200px;background-color: purple;}

   HTML代码:

    <div id="yeye"><div id="father"><div id="son"></div></div></div>

   javascript代码:

var son = document.getElementById("son");
console.log(son.offsetLeft);

  

2.3 案例

 

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style type="text/css">body{margin: 0;padding: 0;background-color: black;}#nav{width: 800px;height: 42px;background-image: url(images/rss.png);background-position: right center;background-repeat: no-repeat;background-color: white;position: relative;border-radius: 8px;margin:0 auto;}#nav ul{margin: 0;padding: 0;height: 42px;list-style: none;position: absolute;left: 0;top:0;}#nav ul li{width: 83px;height: 42px;line-height: 42px;text-align: center;color: black;float: left;}#cloud{position: absolute;left: 0;top: 0;background-image: url(images/cloud.gif);width: 83px;height: 42px;}</style>
</head>
<body><div id="nav"><span class="cloud" id="cloud"></span><ul><li>首页新闻</li><li>师资力量</li><li>活动策划</li><li>企业文化</li><li>招聘信息</li><li>公司简介</li><li>上海校区</li><li>广州校区</li></ul></div>
</body>
</html>
<script type="text/javascript">var lis = document.getElementsByTagName("li");var span = document.getElementById("cloud");var target=0;var begin = 0;var current=0;for (var i = 0; i < lis.length; i++) {lis[i].οnmοuseοver=function(){target = this.offsetLeft;}lis[i].οnclick=function(event){current = this.offsetLeft;begin = current;}lis[i].onmouseout = function(){target = current;}}setInterval(function(){begin =begin+ (target-begin)/10;span.style.left = begin+"px";},10);
</script>

2.4 总结

offsetLeft从父级的padding开始算起,父级的border不算,也就是在盒子到定位盒子边框到边框的距离。

3 offset家族——offsetParent

3.1 offsetParent和parentNode的区别

   offsetParent:返回该对象的父级(带有定位,有可能是爷爷)对象。    parentNode返回父级节点对象(亲爹)。    

3.2 代码示例

   CSS代码:

#gf {position: absolute;}

   HTML代码:

<div id="gf"><div id="fa"><div id="son"></div></div>
</div>

   javascript代码:

<script>var son = document.getElementById("son");console.log(son.parentNode.id);console.log(son.offsetParent.id);
</script>

3.3 offset家族属性和style属性的区别

3.3.1 区别

  1. offsetLeft 可以返回没有定位盒子的距离左侧的位置。 而 style.top 不可以,只有定位的盒子才有 left,top等属性。
  2. offsetTop 返回的是数字,而 style.top 返回的是字符串,除了数字外还带有单位:px。
  3. offsetTop 只读,而 style.top 可读写。
  4. 如果没有给 HTML 元素指定过 top 样式,则 style.top 返回的是空字符串。
  5. 最重要的区别 style.left 只能得到 行内样式 offsetLeft 随便  

3.3.2 代码示例

  CSS代码:

#demo {width: 200px;
}

  HTML代码:

<div id="demo" style="width: 300px;"></div>

  javascript代码:

<script>var demo = document.getElementById("demo");console.log(demo.style.width);console.log(demo.offsetWidth);demo.offsetWidth = 500;  // 可以得到值,但是不能更改值demo.style.width = "500px";  // 可以得到 行内的值,也可以更改值
</script>

4 做几个小案例试试

4.1 如何得到鼠标在盒子中的坐标

废话不多说,上代码

CSS代码:

<style>*{margin:0; padding:0;}.demo {width: 400px;height: 400px;background-color: pink;margin: 100px;}
</style>

   HTML代码:

<div class="demo"></div>

   JavaScript代码:

<script>var div = document.getElementsByTagName("div")[0];div.onmousemove = function(event) {var event = event || window.event;var x = event.clientX - this.offsetLeft;var y = event.clientY - this.offsetTop;this.innerHTML = x + "px" + y + "px";
}
</script>

4.2 水平滚动条

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><style type="text/css">*{margin: 0px;padding: 0px;}.scroll{width: 400px;height: 8px;background-color: #ccc;margin: 100px auto;position: relative;}.bar{width: 10px;height: 22px;position: absolute;left: 0px;top: -7px;background-color: #369;cursor: pointer;}.mask{height: 100%;width: 0;background-color: #369;position: absolute;left: 0;top : 0;}</style>
</head>
<body>
<div class="scroll" id="scrollBar"><div class="bar"></div><div class = "mask"></div>
</div>
<div id="demo"></div>
</body>
</html>
<script type="text/javascript">//鼠标的拖动,其实是鼠标按下后的移动var scrollbar = document.getElementById("scrollBar");var bar = scrollbar.getElementsByTagName("div")[0];var mask = scrollbar.getElementsByTagName("div")[1];var demo = document.getElementById("demo");bar.onmousedown = function(){var that = this;document.οnmοusemοve= function(event){event = event || window.event;var val = event.clientX - scrollbar.offsetLeft - that.offsetWidth/2 ;//鼠标在滚动条中的位置;if(val<0){val=0;}else if(val>390){val=390;}that.style.left = val+"px";mask.style.width = that.style.left;demo.innerHTML= parseInt(that.style.left)/390 * 100 +"%";window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();}}document.οnmοuseup= function(){document.onmousemove = null;}
</script>

javascript网页特效(一)相关推荐

  1. php实现页面雪花效果,JavaScript_使用javascript实现雪花飘落的效果,看了javascript网页特效实例大全 - phpStudy...

    使用javascript实现雪花飘落的效果 看了javascript网页特效实例大全中的图片飘下的效果实例,觉得值得动手学习下. 就把图片改成雪花图,完成一个雪花飘下的效果. 并且,其中有些内容比较陈 ...

  2. JavaScript网页特效-限时秒杀

    限时秒杀是网络商家在某一预定的时间里,大幅度降低活动商品的价格,买家只要在这个时间里成功拍得此商品,便可以用超低的价格买到原本很昂贵的物品的一种营销活动.限时秒杀短时效的限定会给予用户更强烈的紧迫感, ...

  3. JavaScript网页特效-“渔夫打鱼晒网”程序设计

    程序设计时,把可能需要反复执行的代码封装为函数,然后在需要执行该段代码功能的地方进行调用,这样不仅可以实现代码的复用,更重要的是可以保证代码的一致性,只需要修改该函数代码,则所有调用位置均得到体现.同 ...

  4. JavaScript网页特效-“扫雷”游戏随机布雷功能

    "扫雷"游戏是一款经典益智小游戏.游戏目标是在最短的时间内找出所有非雷格子,同时避免踩雷,踩到一个雷即全盘皆输.本节介绍"扫雷"游戏随机布雷功能的设计与实现. ...

  5. 《JavaScript网页特效经典300例》

    <JavaScript网页特效经典300例> 基本信息 作者: 杨磊    张志美 丛书名: 百炼成钢系列丛书 出版社:电子工业出版社 ISBN:9787121220524 上架时间:20 ...

  6. JavaScript网页特效-浮现社会主义核心价值观文字动画效果

    1.案例呈现 用户在页面单击鼠标左键,页面浮现"富强"."民主"."文明"."和谐"."自由".&q ...

  7. 实用JavaScript网页特效编程百宝箱pdf

    下载地址:网盘下载 内容介绍 编辑 计算机的出现是人类历史上的伟大创举,因为它正在彻底改变着人们生活中的方方面面,网络化的计算机更是日益渗透到社会发展的各个应用领域,从20世纪五六十年代网络雏形发展到 ...

  8. javascript网页特效_南通建网站哪些,网页设计维护

    无锡邦程信息科技有限公司为您详细解读rKXvd南通建网站哪些的相关知识与详情,#末网页设想师根据差别站点的内容微风格,设想出完美的网页效果图.内容填充:不论是个人网站还是企业网站,都必需从内容那个动身 ...

  9. JavaScript网页特效学习笔记1

    在网络中有许多的特效都是用JavaScript编写的,这几天通过看书和看视频,简单的学习了几个网页常见的特效,和大家分享一下. 1.使HTML页面反向显示 我们浏览网页的时候,都是正向显示的.可以通过 ...

  10. JavaScript网页特效-留言板

    留言板是一种可以用来记录.展示文字信息的载体,有比较强的时效性.网站中的留言板功能非常重要,可以实现和用户互动,例如人民网的"领导留言板"."领导留言板"是人民 ...

最新文章

  1. Sql Server函数全解(四)日期和时间函数
  2. Oracle和Mysql获取uuid的方法对比
  3. Algorand 共识算法 BA* 入门
  4. 基于canvas的图片压缩函数实现
  5. leetcode 1128. 等价多米诺骨牌对的数量
  6. 漫画:什么是区块链?
  7. 【工具】Xshell安装注册以及简单属性配置
  8. Nginx之http配置
  9. char强制类型转换为int_常量、变量、基本数据类型转换、和运算符
  10. 瑞丽超级排料的使用非常简单 超级排料系统2012超越版
  11. fiddle下载安装教程
  12. Android NDK下载链接
  13. 安装系统或者进PE蓝屏 代码:IRQL NOT LESS OR EQUAL
  14. ”骇客“不可缺少的电脑软件
  15. 在京东工作是一种什么样的体验
  16. 【svn】如何批量忽略文件和文件夹
  17. 8月9日个人训练小结
  18. Menu菜单,MenuBar菜单栏,MenuItem菜单项
  19. springboot 整合 spring-integration-mqtt
  20. 基于javaweb仿京东商城管理系统的设计与实现(含论文和程序源码及数据库文件)

热门文章

  1. 第一篇 Qt能做什么?
  2. python爬新闻并保存到csv_python爬取信息并保存至csv
  3. 合肥工业大学计算机和信息学院,合肥工业大学计算机与信息学院
  4. 参与修谱工作,要具备哪些能力?光会修谱可不行
  5. (转)罗振宇跨年演讲:哪来直接登顶的人生,只有不断迭代的历程
  6. 【R语言数据科学】(十二):有趣的概率学(上)
  7. android N 移除 webview
  8. 如何在不清空原有配置的情况下修改路由器密码??????
  9. ROS入门之——action
  10. 程序员租房福利! 最新 2018年上海公积金提取 租房提取