不错,ie,firefox,opera 通通搞定。
function handle(delta) {
if (delta < 0)
alert("向下滚动");
else
alert("向上滚动");;
}
function wheel(event){
var delta = 0;
if (!event) /* For IE. */
event = window.event;
if (event.wheelDelta) { /* IE/Opera. */
delta = event.wheelDelta/120;
/** In Opera 9, delta differs in sign as compared to IE.
*/
if (window.opera)
delta = -delta;
} else if (event.detail) { /** Mozilla case. */
/** In Mozilla, sign of delta is different than in IE.
* Also, delta is multiple of 3.
*/
delta = -event.detail/3;
}
/** If delta is nonzero, handle it.
* Basically, delta is now positive if wheel was scrolled up,
* and negative, if wheel was scrolled down.
*/
if (delta)
handle(delta);
}
/** Initialization code.
* If you use your own event management code, change it as required.
*/
if (window.addEventListener)
/** DOMMouseScroll is for mozilla. */
window.addEventListener('DOMMouseScroll', wheel, false);
/** IE/Opera. */
window.onmousewheel = document.onmousewheel = wheel;
[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]
这个 CSS examples - pmob.co.uk有很多 CSS 例子。真是一个人一个编码风格,这个人很喜欢用 position 和 visibility 。
比如
a {background:url(imgurl1)}
a:hover {background:url(imgurl2)}
他更喜欢
a {background:url(imgurl2)}
a:hover img {visibility:hidden}
浏览器的 css hack 判断也比较多,甚至还为 opera 7 做了检测。有时间可以看看,还是有些启发的。
我个人对 css hack 深恶痛绝,会让CSS很混乱臃肿!
我的流程是:首先为 firefox(最新版 1.5.x)编码,完成后修改ie6下的问题。这步已经很麻烦了,针对ie的修改常常会影响firefox,这时为了偷懒,一般简单 hack一下, html>xxx 或者 * html 或者条件注释等等,随便用一种方法。最后测试opera(最新版 9.x)下有没有什么大问题。
理由为:mozilla 内核的浏览器种类最多,*nix,Mac下的绝对主流浏览器,Win 下firefox 也直逼 IE。就我个人而言,IE只是测试以及上招商银行交电话费和电费。IE5.x坚决不予测试,一是麻烦,而是我的页面也没必要给那些用原始 win98的人看。opera 7也不测试。opera 从8以后才是脱胎换骨,成为我最喜欢的两个浏览器(opera 9+firefox 2.x)之一。
原文来自 CSS Browser Selector,其实是扯淡,还是js判断userAgent,只不过不想以前那样location或者 refresh 到另一个页面而是通过改变 className(html.ie) 来区分不同的样式,有点启发。
CSS部分
javascript 部分
function css_browser_selector() {
var ua = navigator.userAgent.toLowerCase();
var h = document.getElementsByTagName(’html’)[0];
if(ua.indexOf(’msie’) != -1 && !(ua.indexOf(’opera’) != -1) && (ua.indexOf(’webtv’) == -1) ) h.className=’ie’;
else if(ua.indexOf(’gecko/’) != -1) h.className=’gecko’;
else if(ua.indexOf(’opera’) != -1) h.className=’opera’;
else if(ua.indexOf(’konqueror’) != -1) h.className=’konqueror’;
else if(ua.indexOf(’applewebkit/’) != - 1) h.className=’safari’;
}
css_browser_selector();


菜单的上面部分是 Page Saver(我是在linux下试用的)。下面的 ScreenGrab 则需要java支持(我最恨需要.net framework或者java 支持的软件!垃圾,不予测试)。