一些有用的javascript实例分析(三)

简介: 原文:一些有用的javascript实例分析(三) 1 10 输入两个数字,比较大小 2 window.onload = function () 3 { 4 var aInput = document.
原文: 一些有用的javascript实例分析(三)

  1 10 输入两个数字,比较大小
  2 window.onload = function ()
  3 {
  4     var aInput = document.getElementsByTagName("input");
  5     var aSpan = document.getElementsByTagName("span")[0];
  6     for(var i=0;i<aInput.length-1;i++){
  7         aInput[i].onkeyup=function(){
  8             //用空白取代非数字
  9             this.value=this.value.replace(/^\d/,"");
 10         }
 11     aInput[2].onclick=function(){
 12         //若都不输入数字提醒(保证代码的健壮性)
 13         (aInput[0]==""||aInput[1]=="")?alert("please input number"):aSpan.innerHTML=Math.max(aInput[0].value,aInput[1].value)
 14     }    
 15     }
 16 11 简易网页时钟
 17 window.onload = function ()
 18 {
 19     var oClock = document.getElementById("clock");    
 20     var aSpan = oClock.getElementsByTagName("span");
 21     setInterval(getTimes,1000);
 22     function getTimes(){
 23         //获取当期时间
 24         var date=new Date();
 25         //时分秒组成一个数组
 26         var aDate=[date.getHours(),date.getMinutes(),date.getSeconds()];
 27         for(var i in aDate){aSpan[i].innerHTML=formate(aDate[i])}
 28     }
 29 function formate(a){
 30     //正则匹配的反向引用,a是数字以默认的10进制输出
 31     return a.toString().replace(/^(\d)$/,"0$1")
 32 
 33 }
 34 12 setTimeout应用
 35 window.onload = function ()
 36 {
 37     var oNav = get.byId("nav");
 38     //获取一级导航栏
 39     var aLi = get.byTagName("li", oNav);
 40     //获取二级导航栏
 41     var aSubNav = get.byClass("subnav", oNav);
 42     var oSubNav = oEm = timer = null;
 43     var i = 0;
 44     //循环一级导航栏
 45     for(i=1;i<aLi.length;i++){
 46         aLi[i].onmouseover=function{
 47             //先隐藏所有的子导航栏
 48             for(i=0;i<aSubNav.length;i++){aSubNav[i].style.display="none";}
 49             //获取该项下的子导航栏
 50             oSubNav=get.byClass("subnav",this)[0];
 51             //获取该项下的指示箭头
 52             oEm=get.byTagName("em",this)[0];
 53             //显示该项下的子导航栏
 54             oSubNav.style.display="block";
 55             //offsetWidth是指对象自身的宽度,整型,单位像素(含边线,如滚动条的占用的宽,值会随着内容的输入而不断改变)
 56             //offsetLeft:获取对象相对于版面或由 offsetParent 属性指定的父坐标的计算左侧位置
 57             //判断显示区域,this.offsetLeft是相对oNav来说的
 58             oNav.offestWidth-this.offsetLeft>oSubNav.offestWidth?oSubNav.style.left=this.offest+"px":oSubNav.style.right=0;
 59             //style.left,元素必须设置position才有效
 60             oEm.style.left=this.offsetLeft-oSubNav.offsetLeft+50+"px";
 61             clearTimeout(timer);
 62             //阻止事件冒泡,只在li上有用,在nav没用
 63             oSubNav.onmouseout=function(event){
 64                 (event||window.event).cancelBubble=true;
 65                 //清楚鼠标离开的定时器,做到无缝滑动
 66                 clearTimeout(timer);
 67             }
 68         }
 69         aLi[i].onmouseout=function(){
 70             //离开后0.3s去除子导航栏
 71             timer=setTimeout(function(){oSubNav.style.display="none"},300)
 72         }
 73         }
 74     }
 75 13 自动播放效果-幻灯片
 76 window.onload = function ()
 77 {
 78     var oBox = document.getElementById("box");
 79     var aUl = document.getElementsByTagName("ul");
 80     //获取图片列表
 81     var aImg = aUl[0].getElementsByTagName("li");
 82     //获取按钮列表
 83     var aNum = aUl[1].getElementsByTagName("li");
 84     var timer = play = null;
 85     var i = index = 0;    
 86     //切换按钮
 87     for(i=0;i<aNum.length;i++){
 88         aNum[i].index=i;
 89         aNum[i].onmouseover=function(){
 90             show(this.index);
 91         }
 92     }
 93     //鼠标滑过关闭定时器
 94     oBox.onmouseover=function(){
 95         clearInterval(play);
 96     }
 97     //鼠标离开启动自动播放
 98     oBox.onmouseout=function(){
 99         autoPlay();
100     }
101     //自动播放
102     function autoPlay(){
103         play=setInterval(function(){
104             //图片索引每两秒增加一次
105             index++;
106             //当大于图片数目时,归零。达到无缝滚动
107             index>=aImg.length&&(index=0)
108             show(index);
109         },2000)
110     }
111     autoPlay();
112   //图片切换,淡入淡出
113     function show(a){
114         index=a;
115         var alpha=0;
116         for(var i=0;i<aNum.length;i++){
117             //按钮样式
118             aNum[i].className="";}
119             aNum[index].className="current";
120             clearInterval(timer);
121             for(var i=0;i<aImg.length;i++){
122                 //其他图片的透明度最高,即不显示
123                 aImg[i].style.opacity = 0;//w3c
124                 aImg[i].style.filter = "alpha(opacity=0)";//ie
125             }
126             timer=setInterval(function(){
127                 alpha+=2//0.02秒加2
128                 //若大于100,取100
129                 alpha>100&&(alpha=100);
130                 aImg[index].style.opacity = alpha / 100;
131                 aImg[index].style.filter = "alpha(opacity = " + alpha + ")";
132                 //当达到100,清楚定时器
133                 alpha == 100 && clearInterval(timer)
134             },20)
135 
136         }
137     }

 

 1 14 拖拽
 2 var zIndex = 1;
 3 window.onload = function ()
 4 {
 5     var oDrag1 = document.getElementById("drag1");
 6     var oDrag2 = document.getElementById("drag2");
 7     drag(oDrag1);
 8     drag(oDrag2);
 9 };    
10 function drag(oDrag){
11     var disX=disY=0;
12     oDrag.onmusedown=function(event){
13         var event=event||window.event;
14         disX=event.clientX-this.offsetLeft;
15         disY=event.clientY-this.offestTop;
16         var oTemp=document.createElement("div");
17         oTemp["id"]="temp";
18         oTemp.style.left=this.currentStyle?this.currentStyle["left"]:getComputeStyle(this,null)["left"];
19         oTemp.style.top = this.currentStyle ? this.currentStyle["top"] : getComputedStyle(this, null)["top"];
20         oTemp.style.zIndex=zIndex++;
21         document.body.appendChild(oTemp);
22         document.onmouseover=function(event){
23             var event = event || window.event;
24             var il=event.clientY-disX;
25             var iT=event.clientY-disY;
26             var maxL = document.documentElement.clientWidth - oDrag.offsetWidth;
27             var maxT = document.documentElement.clientHeight - oDrag.offsetHeight
28             iL <= 0 && (iL = 0);
29             iT <= 0 && (iT = 0);
30             iL >= maxL && (iL = maxL);
31             iT >= maxT && (iT = maxT);
32             oTemp.style.left=iL+"px";
33             oTemp.style.top=iT+"px";
34             return false;
35         };
36         document.onmouseup = function ()
37         {
38             document.onmousemove = null;
39             document.onmouseup = null;
40             oDrag.style.left = oTemp.style.left;
41             oDrag.style.top = oTemp.style.top;
42             oDrag.style.zIndex = oTemp.style.zIndex;
43             document.body.removeChild(oTemp);
44             oDrag.releaseCapture && oDrag.releaseCapture()
45         };
46         
47         this.setCapture && this.setCapture();        
48         return false
49     }
50 }

 

目录
相关文章
|
Web App开发 监控 JavaScript
监控和分析 JavaScript 内存使用情况
【10月更文挑战第30天】通过使用上述的浏览器开发者工具、性能分析工具和内存泄漏检测工具,可以有效地监控和分析JavaScript内存使用情况,及时发现和解决内存泄漏、过度内存消耗等问题,从而提高JavaScript应用程序的性能和稳定性。在实际开发中,可以根据具体的需求和场景选择合适的工具和方法来进行内存监控和分析。
|
8月前
|
运维 监控 JavaScript
基于 Node.js 图结构的局域网设备拓扑分析算法在局域网内监控软件中的应用研究
本文探讨图结构在局域网监控系统中的应用,通过Node.js实现设备拓扑建模、路径分析与故障定位,提升网络可视化、可追溯性与运维效率,结合模拟实验验证其高效性与准确性。
461 3
|
JavaScript
如何使用内存快照分析工具来分析Node.js应用的内存问题?
需要注意的是,不同的内存快照分析工具可能具有不同的功能和操作方式,在使用时需要根据具体工具的说明和特点进行灵活运用。
713 159
|
前端开发 JavaScript Java
【Java进阶】JavaScript电灯开关实例:从理论到实践
这个例子展示了JavaScript的基本功能,包括操作HTML元素,监听事件,以及改变元素的样式。通过学习和理解这个例子,你可以了解到JavaScript在网页中的应用,以及如何使用JavaScript来创建交互式的网页。
243 13
|
数据采集 前端开发 JavaScript
金融数据分析:解析JavaScript渲染的隐藏表格
本文详解了如何使用Python与Selenium结合代理IP技术,从金融网站(如东方财富网)抓取由JavaScript渲染的隐藏表格数据。内容涵盖环境搭建、代理配置、模拟用户行为、数据解析与分析等关键步骤。通过设置Cookie和User-Agent,突破反爬机制;借助Selenium等待页面渲染,精准定位动态数据。同时,提供了常见错误解决方案及延伸练习,帮助读者掌握金融数据采集的核心技能,为投资决策提供支持。注意规避动态加载、代理验证及元素定位等潜在陷阱,确保数据抓取高效稳定。
520 17
|
JavaScript 前端开发 API
Vue.js与Angular的优劣分析
Vue.js和Angular都是非常流行的JavaScript框架,它们在构建现代Web应用程序方面各有优劣
523 64
|
JavaScript 前端开发 安全
JavaScript与TypeScript的对比,分析了两者的特性及在实际项目中的应用选择
本文深入探讨了JavaScript与TypeScript的对比,分析了两者的特性及在实际项目中的应用选择。JavaScript以其灵活性和广泛的生态支持著称,而TypeScript通过引入静态类型系统,提高了代码的可靠性和可维护性,特别适合大型项目。文章还讨论了结合使用两种语言的优势,以及如何根据项目需求和技术背景做出最佳选择。
1906 4
|
Web App开发 JavaScript 前端开发
使用 Chrome 浏览器的内存分析工具来检测 JavaScript 中的内存泄漏
【10月更文挑战第25天】利用 Chrome 浏览器的内存分析工具,可以较为准确地检测 JavaScript 中的内存泄漏问题,并帮助我们找出潜在的泄漏点,以便采取相应的解决措施。
1862 9
|
运维 监控 JavaScript
鸿蒙next版开发:分析JS Crash(进程崩溃)
在HarmonyOS 5.0中,JS Crash指未处理的JavaScript异常导致应用意外退出。本文详细介绍如何分析JS Crash,包括异常捕获、日志分析和典型案例,帮助开发者定位问题、修复错误,提升应用稳定性。通过DevEco Studio收集日志,结合HiChecker工具,有效解决JS Crash问题。
781 4

热门文章

最新文章