600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > CSS实现onMouseOver onMouseOut效果和层套菜单【HTML】

CSS实现onMouseOver onMouseOut效果和层套菜单【HTML】

时间:2024-06-23 15:39:22

相关推荐

CSS实现onMouseOver onMouseOut效果和层套菜单【HTML】

web前端|html教程

CSS实现onMouseOver、onMouseOut效果和层套菜单

web前端-html教程

在IE中 标签的。而实际上 WEB 标准里面, 应该对所有元素都支持。

如果使用 Mozilla 或者 Opera, 那么可以看到不需要这个 htc 都可以正常运行的。 因为 htc 是 IE 特有的,别的浏览器不能理解,会忽略掉,不影响结果的显示。

网页源码小偷,vscode php提示,ubuntu安装黑屏,关闭tomcat端口,sqlite 更新数据,长沙网页设计薪资,织梦如何上传源码到数据库,美国虚拟服务器,如何制作手机插件,学前端的框架,爬虫分类,php post,seo白帽,springboot表现层,织梦标签云,方维旅游网站源码,html炫酷网页,phpweb 首页模板,什么叫网站后台,精美的html页面模板,java宾馆客房管理系统,微信小程序转盘实例lzw

以下这段 htc 是一个老外写的针对 IE 的 hover 行为的一个修正。

有了这个代码就方便多了,而且最可贵的是,以上的这个页面例子是可以兼容 IE, Mozilla 和 Opera 的。

广播电台源码,vscode关闭dpi,华硕k46cm安装ubuntu,tomcat改8080,树莓派sqlite命令,图表类型插件,ace前端框架中日历框,微博爬虫 用户评论,php字符串 utf8,英文SEO工作,多终端网站,随机弹出一个网页代码,欢迎模板下载lzw

原先在html里都是使用onMouserOver等事件,实现鼠标焦点控制的,从来没有想到过用CSS简化原先繁琐的工作,直到偶然间发现了whatever:hover,才认识到CSS原来可以做很多工作,甚至可是实现繁杂的menubar。

凹凸啦源码,ubuntu的电脑首页,网络爬虫软件代理,php ==null,SEO的法则lzw

实现的核心部分是csshover.htc文件,它其实就是JScript代码,负责处理所有的CSS格式,根据定制的CSS格式,生成onMouseOver和onMouseOut事件,实现了hover的组件化。使用时只需制定div:hover{ background:#f8f8f8; },就实现了鼠标移动到div图层上时,改变背景色的事件。

csshover.htc

/**

* Pseudos – V1.30.050121 – hover & active

* ———————————————

* Peterned – http://www.xs4all.nl/~peterned/

* (c) – Peter Nederlof

*

* Credits – Arnoud Berendsen

* – Martin Reurings

* – Robert Hanson

*

* howt body { behavior:url(“csshover.htc”); }

* ———————————————

*/

var currentSheet, doc = window.document, activators = {

onhover:{on:’onmouseover’, off:’onmouseout’},

onactive:{on:’onmousedown’, off:’onmouseup’}

}

function parseStylesheets() {

var sheets = doc.styleSheets, l = sheets.length;

for(var i=0; i<l; i++)

parseStylesheet(sheets[i]);

}

function parseStylesheet(sheet) {

if(sheet.imports) {

try {

var imports = sheet.imports, l = imports.length;

for(var i=0; i<l; i++) parseStylesheet(sheet.imports[i]);

} catch(securityException){}

}

try {

var rules = (currentSheet = sheet).rules, l = rules.length;

for(var j=0; j<l; j++) parseCSSRule(rules[j]);

} catch(securityException){}

}

function parseCSSRule(rule) {

var select = rule.selectorText, style = rule.style.cssText;

if(!(/(^|\s)(([^a]([^ ]+)?)|(a([^#.][^ ]+)+)):(hover|active)/i).test(select) || !style) return;

var pseudo = select.replace(/[^:]+:([a-z-]+).*/i, ‘on$1’);

var newSelect = select.replace(/(\.([a-z0-9_-]+):[a-z]+)|(:[a-z]+)/gi, ‘.$2’ + pseudo);

var className = (/\.([a-z0-9_-]*on(hover|active))/i).exec(newSelect)[1];

var affected = select.replace(/:hover.*$/, ”);

var elements = getElementsBySelect(affected);

currentSheet.addRule(newSelect, style);

for(var i=0; i<elements.length; i++)

new HoverElement(elements[i], className, activators[pseudo]);

}

function HoverElement(node, className, events) {

if(!node.hovers) node.hovers = {};

if(node.hovers[className]) return;

node.hovers[className] = true;

node.attachEvent(events.on,

function() { node.className += ‘ ‘ + className; });

node.attachEvent(events.off,

function() { node.className =

node.className.replace(new RegExp(‘\\s+’+className, ‘g’),”); });

}

function getElementsBySelect(rule) {

var parts, nodes = [doc];

parts = rule.split(‘ ‘);

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

nodes = getSelectedNodes(parts[i], nodes);

} return nodes;

}

function getSelectedNodes(select, elements) {

var result, node, nodes = [];

var classname = (/\.([a-z0-9_-]+)/i).exec(select);

var identify = (/\#([a-z0-9_-]+)/i).exec(select);

var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, ”);

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

result = tagName? elements[i].all.tags(tagName):elements[i].all;

for(var j=0; j<result.length; j++) {

node = result[j];

if((identify && node.id != identify[1]) || (classname && !(new RegExp(‘\\b’ +

classname[1] + ‘\\b’).exec(node.className)))) continue;

nodes[nodes.length] = node;

}

} return nodes;

}

Test.htm

New Documentbody {behavior: url(csshover.htc);}

table#tbl tr:hover {background: #000000; color: #ffffff;}

div.test:hover {background: #000000; color: #ffffff;}

a.test:hover {background: #000000; color: #ffffff;}

input.test2:hover {background: #000000; border: 1px dotted black;}

haha5456456

表格1:

表格2:

menubar.htm

whatever:hover cssmenu

body {

behavior:url(“csshover.htc”);

}

* {

font-family:arial,tahoma,verdana,helvetica;

font-size:12px;

}

/* the menu */

ul,li,a {

display:block;

margin:0;

padding:0;

border:0;

}

ul {

width:150px;

border:1px solid #9d9da1;

background:white;

list-style:none;

}

li {

position:relative;

padding:1px;

padding-left:26px;

background:url(“images/item_moz.jpg”) no-repeat;

z-index:9;

}

li.folder { background:url(“images/item_folder.jpg”) no-repeat; }

li.folder ul {

position:absolute;

left:120px; /* IE */

top:5px;

}

li.folder>ul { left:140px; } /* others */

a {

padding:2px;

border:1px solid white;

text-decoration:none;

color:gray;

font-weight:bold;

width:100%; /* IE */

}

li>a { width:auto; } /* others */

li a.submenu {

background:url(“images/sub.jpg”) right no-repeat;

}

/* regular hovers */

a:hover {

border-color:gray;

background-color:#bbb7c7;

color:black;

}

li.folder a:hover {

background-color:#bbb7c7;

}

/* hovers with specificity */

li.folder:hover { z-index:10; }

ul ul, li:hover ul ul {

display:none;

}

li:hover ul, li:hover li:hover ul {

display:block;

}

lorem

adipiscing

dolor

consectetuer

elit

ipsum

Donec

vestibulum

consectetuer

elit

ipsum

Donec

sit amet

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。