最近在做一些js实例应用,发现了一个奇怪的问题。下面是过程:
①按钮:
②点击后
--------------------------------------------------------------
这个在我看来非常容易,于是我很快就写好了:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <style> *{margin:0; padding:0;} #outer{ margin:50px auto; width:70px;} #button1{ padding:5px 8px; cursor:pointer;} #inner{ border:1px solid blue; border-radius:5px; display:none; font-family:"新宋体"; font-size: 12px;} #inner li{ padding:5px 8px; border-bottom:1px solid blue; list-style-type:none; display:inline-block; cursor:pointer; vertical-align:top; width:52px;} #inner li.last{border-bottom:0px;} #inner li a{text-decoration:none;} #inner li:hover{background:#afafaf;} </style> <script> window.onload = function () { oButton=document.getElementById("button1");//按钮 oAppend=document.getElementById("inner");//按钮下的蓝色边框区域。 oButton.onclick=function() { switchState(); } var oClose=document.getElementById("last"); oClose.onclick=function() { switchState(); } } var oButton; var oAppend; var switchState = function()//①当蓝色区域未显示时使其显示、②当蓝色区域显示时使其消失。 { //alert("PRE: [display] = "+oAppend.style["display"]); oAppend.style["display"]= (oAppend.style["display"] == "none"?"block":"none"); //alert("NOW: [display] = "+oAppend.style["display"]); } </script> <body> <div id="outer"> <button id="button1">输入法</button> <ul id="inner"> <li><a href="javascript:void(0);">拼音</a></li> <li><a href="javascript:void(0);">字母</a></li> <li id="last"><a href="javascript:;">关闭</a></li> </ul> </div> </body> </html>
--------
可是,当我运行时却发现第一次点击按钮时,蓝色区域并不会弹出来,而后的点击才有效。这是为什么呢?
----于是在上述代码中我将【oAppend.style["display"](即蓝色区域的display属性)】输出,发现第一次点击时,程序运行到了switchState()方法。但是display属性为null。
-------
经过查询,原来外部样式表与内页样式的属性值虽然已经设置,但是js的方法不能直接得到已设置属性的值,即显示为null。而只能得到行内样式中的属性值。
------
解决方法:①将switchState()的判断顺序改变一下->
var switchState = function() { //alert("PRE: [display] = "+oAppend.style["display"]); oAppend.style["display"]= (oAppend.style["display"] == "block"?"none":"block"); //alert("NOW: [display] = "+oAppend.style["display"]); }
这样第一次点击时就先判断显示,若未显示就将其显示。
② 在对应元素的标签中嵌入【style="display:none"】
这样第一次点击时判断语句就能得到oAppend.style["display"]的值为【“none”】而不是【null】了。
相关推荐
通过以上表格可以看出,大部分CSS属性可以直接通过对应的JavaScript属性来获取或设置元素的样式。这些属性在JavaScript中通常采用驼峰式命名法(camelCase),即除了首字母外每个单词首字母大写。这种对照对于实现...
在前端开发领域,Three.js 是一个非常流行的 JavaScript 库,用于创建和展示3D图形。在本主题中,我们将深入探讨如何使用 Three.js 的 CSS3DRenderer 来渲染全景图,这是一种将3D对象与CSS3变换相结合的技术,能够...
对象属性是定义在 JavaScript 对象上的键值对,例如,`person.name` 就是 `person` 对象的一个属性,用来存储名字。DOM 属性则是通过 JavaScript 访问 HTML 或 XML 文档元素的特性,如 `document.getElementById('...
3. 解析结果:转换后的 JavaScript 对象通常包含一个属性名为 CSS 类名,属性值为包含所有样式的对象。例如: ```javascript const styles = { '.myClass': { color: 'red', fontSize: '16px', display: '...
在网页开发中,CSS(Cascading Style Sheets)和JavaScript是两种至关重要的技术。...此外,学习使用`getComputedStyle()`方法获取计算后的样式,以及`style.cssText`属性一次性设置多个样式也是十分重要的。
### CSS与JavaScript中style属性对照表详解 #### 引言 在前端开发中,CSS(层叠样式表)和JavaScript是构建动态、交互式网页的关键技术。为了更好地控制页面元素的样式,开发者经常需要通过JavaScript来操作DOM...
当`isJS`为`false`时,该方法创建一个`<link>`标签,用于引入外部CSS文件。具体步骤如下: - 创建一个`HtmlGenericControl`实例,并将其标签名称设置为`"link"`。 - 使用`Attributes.Add`方法添加CSS文件的类型、...
而`js`文件夹则包含了实现轮播特效的JavaScript代码,可能包括一个或多个.js文件,这些文件可能包含了轮播逻辑和动画控制的函数。 总的来说,"js+css3 3D波浪动画焦点图轮播切换特效"是一个集成了JavaScript编程和...
在JavaScript中,对CSS属性进行设置和获取是前端开发中常见的操作。原生JavaScript提供了DOM对象的style属性,可以用来直接操作元素的内联样式。本文将深入探讨如何使用原生JavaScript来实现CSS属性的set和get方法,...
JavaScript(简称JS)和CSS是Web开发中的两个关键技术,它们共同作用于网页的动态功能与样式呈现。本文将深入探讨这两者之间的交互,并提供一些关于如何在JS中操作CSS的教程要点。 **一、JavaScript简介** ...
在上述场景中,开发者遇到了一个问题,需要从CSS的`background-image`属性中提取出图片URL。`background-image`属性通常用于设置元素的背景图像,其值可以是一个URL,或者是多个值的组合,例如渐变或重复模式。在这...
【标题】:“利用css+javascript实现的一个日期选择器代码”涉及的核心知识点主要集中在CSS样式设计和JavaScript编程上,用于创建一个交互式的日期选择组件。日期选择器是网页表单中常见的一种元素,允许用户方便地...
在实际代码中,你可能会看到一个JavaScript文件(如`slideshow.js`),其中包含滑动相册的逻辑,以及一个或多个CSS文件(如`styles.css`),用于样式设定。JavaScript文件可能包括函数,用于初始化相册、处理用户...
当尝试通过JavaScript(通常使用jQuery或其他库)来移除一个HTML元素的CSS属性时,简单的将其值设置为空字符串(例如`element.style.property = ''`)并不总是能够完全移除该属性。这是因为: 1. **浏览器默认样式...
标题 "JS和CSS和C++互相调用" 涉及到的是三种不同的编程语言——JavaScript、CSS和C++在Web开发中的交互性问题。在现代Web开发中,这种跨语言交互是实现复杂功能和高性能应用的关键。让我们深入探讨一下这三者之间的...
- **综合应用**:利用JavaScript制作一个功能完善的日历控件。 #### 第四部分:综合应用——建立你自己的网站 **第二十三章:建立你自己的网站** - **项目规划**:确定网站的目标和内容。 - **设计布局**:使用...
通过以上知识点的学习和实践,学生可以掌握如何使用HTML5、CSS3和JavaScript构建一个具有基础交互功能的旅游网站。这些技能不仅适用于完成学业项目,也为未来从事前端开发工作打下了坚实的基础。
JavaScript(简称JS)和CSS是Web开发中的两个关键技术,它们分别负责网页的交互逻辑与样式设计。在本文中,我们将深入探讨如何使用JavaScript来动态地改变CSS样式,以实现如标题所示的效果——通过页面JS事件改变...
【标题】"js+css3倒计时动画特效"是一个结合了JavaScript和CSS3技术的网页倒计时组件,它为传统的倒计时功能增添了视觉吸引力。这种特效常见于活动预热、产品上线预告等场景,能吸引用户注意力并营造紧张期待的氛围...