鼠标事件改变css样式、选择器

html-css024

鼠标事件改变css样式、选择器,第1张

我们在很多时候其实是需要在网页中设置鼠标效果的,有些是自动生成的,比如一个link链接,那么鼠标移上去自动会变成一个手的样子去点击,有时候一个input输入框,那么鼠标就自动变成一个英文大写I的样子,那么我们是否可以将更多对象设置成我们需要的样子呢?这完全是可以的,接下来就看下效果吧

onClick:鼠标单击事件。(是指鼠标按下,然后松开时产生。)

onDblClick:鼠标双击事件。(是指鼠标快速按下,松开,并再次按下时产生。)

onMouseDown:鼠标按下事件。(鼠标按下时即产生。)

onMouseUp:鼠标释放事件。(是指鼠标从按下的状态到弹起。)

onMouseMove:鼠标移动事件。(是指在特定元素上移动鼠标。)

onMouseOver:鼠标经过事件。(是指,当指针从外界往元素上移动时产生。)

onMouseOut:鼠标离开事件。(是指鼠标从特定元素上离开时产生。)

onLoad:载入事件。(当图象或页面结束载入时产生。)

onUnload:卸载事件。(当访问者离开页面时产生。)

onScroll:滚动条滚动事件。(当访问者使用卷轴上移或下移时产生。)

将这个自定义样式应用到图片上,在浏览器中预览到图片变成了黑白,我们再定义一个样式“.over”,这个样式没有任何内容,是空样式,样式表代码如下:

.over {}

.out {filter: Gray}

然后在图片标记(IMG)里加上“onMouseOver="this.className='over'" onMouseOut="this.className='out'"”,意思为当鼠标经过时,图片为over样式,即彩色正常图象;当鼠标离开时,图片为out样式,即黑白图像。oMouseOver和onMouseOut是鼠标事件,this.className=”…”表示当前对象的class名 为…,注意大小写不要写错,JS对大小写非常敏感。

这样这个效果就完成了,保存后在浏览器里打开,图象是黑白的,当鼠标移上去时,图象变成彩色,鼠标离开时,图象又变回黑白。只要发挥你的想象,通过this.className方法还可以做出很多好看的鼠标效果。

十字  

文本光标  

等待  

默认  

问号  

左右箭头  

上下箭头  

系统自动给出效果

系统自动给出效果

:hover 选择器用于选择鼠标指针浮动在上面的元素。

提示: :hover 选择器可用于所有元素,不只是链接。

提示: :link 选择器设置指向未被访问页面的链接的样式,:visited 选择器用于设置指向已被访问的页面的链接,:active 选择器用于活动链接。

注释: 在 CSS 定义中,:hover 必须位于 :link 和 :visited 之后(如果存在的话),这样样式才能生效。

/* 字体链接样式 */

td.firstLevelMenuClass a:link {color: #3E8BAC text-decoration: none}      /* 未访问的链接 */

td.firstLevelMenuClass a:visited {color: #FFFFFF text-decoration: none}    /* 已访问的链接 */

td.firstLevelMenuClass a:hover {color: #FFFFFF}    /* 鼠标移动到链接上 */

td.firstLevelMenuClass a:active {color: #FFFFFF}   /* 选定的链接 */

/* 鼠标事件背景样式 */

td.firstLevelMenuClass:hover {background-image: url(../../Public/img/menu_first_down_bg.gif) }  /* 鼠标移动到链接上 */

td.<span style="color:#cc0000">firstLevelMenuClassHover</span>{background-image: url(../../Public/img/menu_first_down_bg.gif) }

td.firstLevelMenuClass{background-image: url(../../Public/img/head_menu_center.gif) }

JS:

[javascript] view plain copy

/*

* 取得对应类和标签的HTML元素

* clsName:给定类名

* tagName:给定的HTML元素,如果为任意 tagName='*'

*

*/

function getElementsByClassName(clsName, tagName) {

var ClassElements = []

selElements = document.getElementsByTagName(tagName)

for (var i = 0 i < selElements.length i++) {

if (selElements[i].className == clsName) {

ClassElements[ClassElements.length] = selElements[i]

}

}

return ClassElements

}

//通过改变元素class名达到间接改变背景样式

function onFirstMenuChangeBg(e) {

//先清除已经改变的元素背景样式

var getElements = getElementsByClassName('<span style="color:#cc0000">firstLevelMenuClassHover</span>', 'td')

for (var i = 0 i < getElements.length i++) {

getElements[i].className = "firstLevelMenuClass"

}

//设置鼠标点击元素背景样式

e.className = "firstLevelMenuClassHover"

}

HTML:

[html] view plain copy

<td class="firstLevelMenuClass" id="firstLevelMenu0"  onclick="onFirstMenuChangeBg(this)" >

<a href='#'>测试0</a>

</td>

<td class="firstLevelMenuClass" id="firstLevelMenu1"  onclick="onFirstMenuChangeBg(this)" >

<a href='#'>测试1</a>

</td>

<td class="firstLevelMenuClass" id="firstLevelMenu2"  onclick="onFirstMenuChangeBg(this)" >

<a href='#'>测试2</a>

</td>

1、首先创建一个txt文件,修改后缀名:把.txt改为.html,用记事本打开添加如下代码:打开浏览器,这是一个没有添加样式的button,外观不美观,而且在不同的浏览器下显示的外观是不一样的,所以我们要添加统一的样式。

2、按钮样式比较多,这样写让代码不整洁,可阅读性差,就要用style标签。

3、<style type="text/css"></style>样式表。style标签里面表示的是一个样式表,我们所有的样式都可以写到标签中去。这段代码的意思是:凡是button标签都使用这个样式。

4、把 样式表中的  button{}改成了.ui_button{},然后在button标签里面加了class属性,这样做的意思是,这个button标签使用了名字为ui_button的样式。

5、通过javascript动态修改样式,为了避免用户多次点击提交按钮重复提交信息,在用户点击提交按钮之后,禁用按钮,并设置按钮字体的颜色为灰色。

6、修改样式的其他方法:obj.style.cssText = "color:#E1E1E1background-color:black"cssText可以写多个样式样式属性。

7、修改样式的其他方法:obj.setAttribute("class", "style2")直接更改按钮标签的class属性,把指向名为ui_button的样式改为指向名为style2的样式。

8、修改样式的其他方法:<link href="css1.css" rel="stylesheet" type="text/css" id="css"/>obj.setAttribute("href","css2.css")修改引用外部的样式表文件,这样就可以对整个页面的样式进行全部更新。