JavaScript学习 第 四 章

JS:JavaScript 简介 在当今数字时代,JavaScript已然成为了现代Web开发的基石。从最初作为浏览器中的一个小型脚本语言,到如今成为驱动全球互联网的强大引擎,JavaScript的发展历程本身就是一个令人着迷的故事。 阅读详情


第四集




这章我将告诉您如何在状态列 (statusbar) (也就是您浏览器最下方显示 URLs 的那一行) 显示文 字,并且将教您 '跑马灯' (以下简称 scroller ) 的工作原理。虽然以 JavaScript 完成的 scroller 目前 仍有些问题 (稍後会提到问题在哪儿?),但我还是告诉您它是如何写成的。

首先,如何将文字填入 statusbar 呢?下述语法将告诉您如何做到这项功能: (按下按钮後请注视 statusbar 的变化)

很新奇吧! 请看看原始码 :

<html>
<head>
<script language="JavaScript">
<!-- Hide
function statbar(txt) {
   window.status = txt;
}
// -->
</script>
</head>
<body>
<form>
<input type="button" name="look" value="写入文字" onclick="statbar('嗨 ! 这就是状态
列 (statusbar) !');">
<input type="button" name="erase" value="清除文字" onclick="statbar('');">
</form>
</body>
</html>

我制作了两个都会呼叫 statbar(txt) 函式 (function) 的按钮。当此函式被呼叫後,字串经由括弧中 的变数 txt 传给 statbar(txt)。 (不一定要用 txt,用别的变数名也可以)。当电脑执行到 <form> tag 时, 一旦按下按钮就会呼叫 statbar(txt)。但是电脑并没有马上将 txt 的内容写在 statusbar,只是 将欲显示的字串存入 txt。换句话说,藉由呼叫函式,只是让变数 txt 得到一个值。因此当您按 下 '写入文字' 这个按钮後,会呼叫 statbar(txt) 而且 '嗨 ! 这就是状态列 (statusbar) !' 这个字串会 存入 txt 中。咻 ! 讲了这麽多只是想告诉您这种写法可预留一些弹性。什麽弹性呢?就是您可重 复使用 txt 这个变数。您看看第二个按钮,它也是呼叫相同的函式。若您不利用一个变数来传递 字串的话,就必须写两个不同的函式了。

那麽 statbar(txt) 到底做了些什麽?其实没什麽,只是将 txt 的内容写入变数 window.status中。这 是由 window.status = txt; 做的。另外若想消除文字,只需送一个空字串 ('') 给 statusbar。请注 意,因为在 onClick 中我们已经使用双引号 " ,所以这里必须用单引号 ' 。这是为了让浏览器辨 认哪两个引号是一对的,因此您必需双引号和单引号交替使用。

由此份简介文件第二章您已学过 onMouseOver 的特性了 :
<a href="tpage.html" onMouseOver="window.status='Just another stupid link...'; return true">
您可能会对一件事感到厌烦。那就是当 mouse 的指标已从 link 移开了,但是 statusbar 中的文字 还留在那 !没关系,我教您一个解决的办法。利用上面教您如何消除 statusbar 中文字的方法, 我们来写一个小函式。但是如何侦测出 mouse 的指标已从 link 移开并进而呼叫消除文字的函式 呢?侦测 mouse指标是否已从 link 移出的功能目前还无法达到,但可用 "计时器" 来暂时解决此 问题。

试试将 mouse 移到此 link 上看看 statusbar 的变化,但请不要按它。

怎麽样?很棒吧!看看下面的原始码您就知到这东西很简单。

<html>
<head>
<script language="JavaScript">
<!-- Hide
function moveover(txt) {
   window.status = txt;
   setTimeout("erase()",1000);
}
function erase() {
   window.status="";
}
// -->
</script>
</head>
<body>
<a href="dontclck.html" onMouseOver="moveover('瞬间即逝 !');return true;">
link</a>
</body>
</html>

这 script 的许多部份相信您已了解。 moveover(txt) 其实和先前的 statbar(txt) 差不多。erase()也和 先前所讨论的相同。在 HTML 网页中的 <body> tag 里我们加入一个具有 onMouseOver 功能之 link。当 mouse 指标移至 "link" 上就会呼叫 moveover(txt),并且利用 txt 变数传递字串 '瞬间即逝 !'。接下来的步骤就和 statbar(txt) 一样, window.status 收到 txt 的值後将之显示在 statusbar 上。 而 setTimeout(...)这项新函式是用来作为一个 "定时器"。setTimeout(...)能作些什麽事呢?它的主 要特性是当某段设定的时间 "跑" 完了之後,便执行某函式。在这个例子中,於 1000 毫秒後 (也 就是 1 秒後) 就会执行 erase()。换句话说,当 1 秒结束後 moveover(txt) 的功能就会因 erase()的 自动执行而停止。
虽然规定时间 "跑" 完後定时器并不会重新启动,但您可以在 erase() 中再用一次setTimeout(...) ,使其循还不断,看起来就像一个跑马灯 (scroller)。


您已学到了 setTimeout 的功能和如何在 statusbar 中显示文字,接下我将教您如何制作一个在 statusbar 显示的 "跑马灯" (scroller)。

请按下方的按钮看看我做的 scroller。由於 script 需由 server 载入到您的电脑中,因此这要花一 点时间,请耐心等一下。

以下是原始码 :

<html>
<head>
<script language="JavaScript">
<!-- Hide
var scrtxt="怎麽样 ! 很酷吧 ! 您也可以试试."+"Here goes your message the visitors 
to your page will "+
"look at for hours in pure fascination...";
var lentxt=scrtxt.length;
var width=100;
var pos=1-width;
function scroll() {
  pos++;
  var scroller="";
  if (pos==lentxt) {
    pos=1-width;
  }
  if (pos<0) {
    for (var i=1; i<=Math.abs(pos); i++) {
      scroller=scroller+" ";}
    scroller=scroller+scrtxt.substring(0,width-i+1);
  }
  else {
    scroller=scroller+scrtxt.substring(pos,width+pos);
  }
  window.status = scroller;
  setTimeout("scroll()",150);
  }
//-->
</script>
</head>
<body onLoad="scroll();return true;">
这里可显示您的网页 !
</body>
</html>

上面 script 用的语法相信大部份您已经懂了。 setTimeout(...) "告诉" 计时器当时间到了就呼叫 scroll()。 如此一来 scroller便会向前移动一步。在 script 的开头有许多计算式,那是用来决定文 字开始显示的位置,了不了解并不重要。一旦决定了文字的启始位置,就必需加些空格 (space) 以使文字能显示在正确位置。

在此章一开始我曾提到,此种 scroller 并不是很受欢迎。即使是,也不会持续很久。为什麽呢? 下面我列出几个主要原因:
当第一次看到 scroller 或许您会觉得很新奇,但久而久之便会觉得索然无味。当然,这是所有 "酷玩意儿" (cool trick) 皆有的现象。
其实这还不是主要原因,更严重的问题还在後头呢 ! 当您移动 mouse 时,您可以发现 scroller 的 速度改变了 (至少在我的机器上是如此)。尤其当您更改 setTimeout 的值为使 scroller 跑快一点时 ,这种情况更严重。不过这问题或许还有解决方法。更糟的是若让 scroller 跑久一点,会出现 Out of memory error的问题 ! 天呀 ! 这是 Netscape Navigator 2.0 的一个 "臭虫" (bug)。我们期待 新的版本能更正此 bug (译按 : Netscape Navigator Atlas Preview Release 已更正此 bug)。

在网路上有许多这方面的应用,您可以试着找找。我曾经看过有人将 scroller 放在 Homepage 中, 这应该不会太难。(译按 : 有兴趣的人可叁考目录中本人所制做的 scroller)


Excel曲线拟合实战:从基础趋势线到高级回归分析 本文系统介绍了Excel曲线拟合的完整工作流,从基础的散点图与趋势线应用,到利用Solver插件进行自定义高级回归分析。文章详细讲解了线性、多项式、指数、对数等六大常用数学模型的适用场景与选择方法,并强调了通过R²值、残差图评估拟合效果、避免过拟合与外推风险的关键步骤,帮助读者掌握从数据探索到预测评估的实战技能。 阅读详情

相关推荐

antiSMASH安装与使用

antiSMASH本地安装 简要: antiSMASH的本地安装需要安装很多的依赖包,本文章使用conda辅助安装 参考: 官方:https://docs.antismash.secondarymetabolites.org/install/ 文章:http://blog.sciencenet.cn/blog-3416913-1240614.html 依赖包下载 conda install -y diamond=0.8.36 conda install -y fasttree=2.1.9 conda ins

Curry_chenhu的博客 7224

使用js中常用的鼠标事件实现一个拖拽的例子

一、js中常用的几个必备鼠标事件 onclick: 元素上发生鼠标点击时触发. ondblclick: 元素上发生鼠标双击时触发. onmousedown: 当元素上按下鼠标按钮时触发. onmouseup: 当在元素上释放鼠标按钮时触发. onmouseout: 当鼠标指针移出元素时触发. onmousemove: 当鼠标指针移动到元素上时触发. onmouseover: 当鼠标指针移动到元素上时

kellywong的博客 1万+

CoppeliaSim远程API实战:用Python控制仿真机器人,5步搞定外部通信

本文详细介绍了如何使用Python通过CoppeliaSim远程API控制仿真机器人,实现外部通信的5个关键步骤。从环境配置到双向通信模式,再到实战案例和性能优化技巧,帮助开发者高效连接算法开发与物理验证。特别对比了B0与传统API的性能差异,提升工业自动化项目的开发效率。

weixin_28733637的博客 366

js事件(onmouseover和onmouseout)

&lt;!doctype html&gt; &lt;html&gt; &lt;body&gt; &lt;div onmouseover="mOver(this)"     onmouseout="mOut(this)"  style= background-color:#D94A38;width:120px;height:20px;padding:40px;&gt;Mouse Over Me&l

旅途 835

【文献阅读笔记】之基于注意力机制的深度学习路面裂缝检测

中文,计算机辅助设计与图形学学报,第 32 卷 第 8 期,2020 年 8 月。 DOI: 10.3724/SP.J.1089.2020.18059 摘要: 为实现自动准确地检测路面裂缝, 提升路面裂缝检测效果, 提出了一种基于注意力机制的裂缝检测网络 (attention-based crack networks, ACNet). 该网络采用编码器-解码器网络构架, 编码器采用 ResNet34 为骨干网, 提取路面裂缝特征; 在编码器和解码器间加入基于注意力机制的特征模块(attention-b

qq_44785998的博客 7593

第四章节 Qt字符串QString详解

QString 的使用方式和 C++标准库的 std::string 字符串的非常相似。

m0_65635427的博客 890

标签页 html实现原理,JS实现标签页效果(配合css)

实现的效果:如上图所示为制作的标签页,我们想要实现的效果是当鼠标移到某一个标签的时候,在下面的内容区显示对应的内容,并且相应标签的颜色需要改变,如图中所示当前鼠标的位置在“标签1”上,则内容区域显示的内容为“我是内容1”,并且“标签1”的颜色要比“标签2”和“标签3”深一些,同样鼠标移到“标签2”和“标签3”的时候显示“我是内容2”和“我是内容3”。这样的效果是CSS和JS配合实现的。下面我们就来...

weixin_35843523的博客 730

一文读懂 SAP Web Dispatcher 配置参考:让 Gateway、OData 与后端服务各走各路

SAP Web Dispatcher在Fiori项目中常被低估,实际上它作为企业系统的HTTP(s)入口,承担着流量分发和安全防护双重职责。该组件通过URL路径规则(如/sap/opu/odata/转发至Gateway系统)实现多系统路由,隐藏后端复杂性,提供统一访问入口。配置要点包括HTTPS参数设置、客户端证书转发、端口定义以及系统冲突处理策略。合理的配置能确保前端统一访问、网络边界清晰可控,同时降低跨团队协作成本。生产环境需根据实际网络架构调整官方示例配置。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 156

Html js鼠标 Mouseover事件和Mouseout事件

Html js鼠标事件 Mouseover事件(重点):鼠标移动到标签之上 Mouse 鼠标 Over 在…之上 Mouseout事件(重点):鼠标离开标签 Var box = doucument.getElementById(“box”) box.inmouseover=function(){ var _this =event.target; console.info(_this) 方法1:...

小谢的博客 1万+

某城商银行生产容器云平台详细设计方案分享及经验总结

AS3模式的CIS容器部署在K8S集群内,作为F5的控制器,CIS容器通过对K8S集群内Configmap资源进行监控,将Configmap资源中的内容转化为F5的配置,将配置推送给 F5 ,CIS容器还通过K8S标准的API接口完成业务发现和实时监听集群内Pod的变化,一旦Pod发生变化,相应的更新会及时推送给F5,并完成更新。容器技术发展非常迅速,现在应用大多以容器作为承载介质,前两年在容器云上承载的应用类型主要是Web类,随着容器云领域的不断发展,越来越多的应用类型将迁移至容器云,包括有状态应用。

qq_61890005的博客 856

Spring AI Alibaba实战训练营-28 手把手教你用SAA+ Nacos 构建分布式 MCP 应用

本文介绍如何使用Spring AI Alibaba和Nacos构建分布式MCP应用,实现AI模型与工具服务的动态发现和调用。主要内容包括:1) 项目架构设计,包含MCP Server、Nacos注册中心和MCP Client三个核心组件;2) 环境准备要求,如Java 17+、Maven 3.6+、Nacos 3.1.0+等;3) 详细实施步骤:启动Nacos服务、注册MCP服务端、配置MCP网关聚合服务、设置MCP客户端发现机制。通过这种架构,开发者可以轻松扩展新工具服务,无需修改客户端代码,实现服务动态

program哲学 311

also、too、likewise、besides,moreover,furthermore,what's more 的区别什么?

1, 近义字的区别:also、too、likewise、besides、 moreover和furthermore.2, moreover,furthermore,what's more 的区别什么?

moonlightpeng的博客 7987

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

《JavaScript高级程序设计(第四版)》学习笔记(四)第4章

《JavaScript高级程序设计(第四版)》学习笔记(四)第4章 这是阅读《JavaScript高级程序设计(第四版)》的第四天,本书已阅读 102/865 第四章:变量、作用域与内存 4.1 原始值与引用值 原始值:最简单的数据。保存原始值的变量是按值访问的,因为我们操作的就是存储在变量中的实际值; 引用值:由多个值构成的对象。保存引用值的变量是按引用访问的。 在操作对象时,实

小丞同学 1401

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

3个关键问题带你掌握JavaScript权威指南:从新手到专家的学习路径

JavaScript作为现代Web开发的基石语言,其重要性不言而喻。然而面对庞大的知识体系和不断更新的技术标准,许多开发者常常陷入"学什么、怎么学、学到什么程度"的困惑中。《JavaScript权威指南第七版》中英对照项目为学习者提供了一个独特的学习路径,帮助你在掌握核心概念的同时,理解现代JavaScript的发展脉络。 ## 📊 JavaScript学习路径思维导图 | 学习阶段 | 核

gitblog_01042的博客 154

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

JavaScript学习手册四:JS对象

JS对象引言A、对象的创建任务描述相关知识代码文件B、属性的增删改查任务描述相关知识代码文件C、属性的检测和枚举任务描述相关知识代码文件 引言 1、JavaScript是基于对象的语言,在JavaScript中,一切都可以被称为对象,包括字符串、数字、布尔型、HTML Element等。这些JavaScript中已有的对象称为内置对象,而用户自己定义的对象叫做自定义对象。自定义对象是数据和函数(也叫方法)的集合。 2、这里要特别提醒的是,JavaScript虽然也是一门基于对象的语言,但是它实现对象的

qq_45823118的博客 7695

四、Flask学习之JavaScript

四、Flask学习之JavaScript

m0_62627216的博客 2034

【JS】深度学习JavaScript

💓 博客主页:从零开始的-CodeNinja之路⏩ 收录文章:【JS】深度学习JavaScript。

smile_sundays的博客 5843

[js] 如何循序渐进地学习Javascript

javascript入门太容易了,导致几乎人人随便看看就能上手,零基础的人学个三五天都能对外宣称自己掌握了js。可是真正掌握js是一件很难的事情。如果在初学一门语言的时候第一想到的是问别人,是很难取得进步的。因为得到答案太容易,而不会去想为什么。而且说实话,js并不适合作为第一门编程语言,它兼容并包,容错性高,但这也意味着一但出错你就很难找到错误的原因。另一方面js有一些优秀的特性对于没有编程经历的人来说也很难发现。

天上の海原 3064

初学者学习Javascript很吃力怎么办?到底该如何学习Js?

Js给初学者的印象总是那么的“杂而乱”,相信很多初学者都在找轻松学习Js的途径。在这里给大家总结一些学习Js的经验,希望能给后来的学习者探索出一条“轻松学习Js之路”。 Js给人那种感觉的原因多半是因为它如下的特点: A:本身知识很抽象、晦涩难懂,如:闭包、内置对象、DOM。 B:本身内容很多,如函数库、对象库就一大堆。 C:混合多种编程思想。它里面...

diaozhu1028的博客 3165

从 colors.js 到 colorPicker.js:拆解 JavaScript 颜色选择器 colorPicker 四组件架构的设计思想

colorPicker 是一款框架无关的 **JavaScript 颜色选择器**与颜色转换计算工具:支持 rgb、hsv、hsl、hex、cmyk、cmy、Lab、XYZ 八种颜色空间实时互转,还能计算 WCAG 2.0 对比度与多层颜色混合效果。整个功能仅由 4 个 JavaScript 组件拼装完成,压缩后只有 45.4KB(gzip 后 19.5KB)。下面按组件逐个拆解它的分层架构设计。

gitblog_00924的博客 408

前端视频学习(四、JavaScript基础)

目录JS 基础第0部分: 预备1. Js代码书写地方2. js代码的注意问题第一部分: ECMAScript1. 变量1.1 基本代码规范:1.2 变量名规范:1.3 声明+初始化:2. 变量类型2.1 原始数据类型:2.2 查看变量类型:2.3 进制表示2.4 类型转换2.5 操作符3. 条件判断3.1 switch 注意事项4. 循环5. 数组6. 函数6.1 函数的注意问题:6.2 argu...

KeYY的博客 1797

深入学习JavaScript系列(四)——JS闭包

函数体和创建函数时的作用域就是在一个执行上下文中创建的函数,如果访问了这个执行上下文中变量对象的值,那么闭包就产生了水平有限,很多地方写的不够严谨,下面几篇是我在学习过程中觉得很好的文章,想继续深入了解的同学可以去看看。参考一:# [译]发现 JavaScript 中闭包的强大威力参考二:# JavaScript闭包的底层运行机制参考三:# 我从来不理解JavaScript闭包,直到有人这样向我解释它…参考三:# 破解前端面试(80% 应聘者不及格系列):从闭包说起。

十九万里的博客 873

JavaScript|第1章:为什么学习现代 JavaScript

本章介绍 JavaScript 的诞生与演进历程,从 1995 年十天创造到 ES6+ 现代化变革;梳理其在前端、后端、移动端、桌面端的全平台应用;对比 var/let/const、箭头函数、Promise/async await、模块化等核心特性;并展示现代 JS 生态全景与本系列 42 章学习路线图,为零基础入门奠定认知基础。

xhmico的博客 430

JavaScript学习第一天:初探JS世界

JavaScript作为Web开发的核心语言,为网页带来了丰富的动态交互效果。今天的學習,我们初步探索了JavaScript的基础知识,包括其基本概念、引入方式以及核心的语法元素。通过实际的代码示例,我们掌握了如何在HTML中嵌入JavaScript代码,如何声明变量、定义数据类型、使用运算符进行操作等基本技能。这些内容为后续深入学习JavaScript奠定了坚实的基础。

2303_78120798的博客 1167
上一篇: JavaScript学习 第 三 章
下一篇: JavaScript学习 第 五 章
spirityj
博客等级 码龄22年 0粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值