阅读:2301回复:4
高手帮忙改下代码。
@namespace url(http://www.mozilla.org/keymaster/gateke ... s.only.xul);
#navigator-toolbox > toolbar:not(#toolbar-menubar) { visibility: collapse !important; } #main-window #navigator-toolbox:hover > toolbar:not([collapsed="true"]) { visibility: visible !important; } 这个代码是stylish自动隐藏导航栏、书签栏的代码,我想在其中加个延时,就是说鼠标划上去自动弹出来后延时5秒后自动隐藏,希望哪个高手能帮忙改下,谢谢 |
|
1楼#
发布于:2009-12-22 00:34
延迟用css没可能
|
|
2楼#
发布于:2009-12-22 00:34
晕,看错要求了,看成鼠标指上去延迟出现地址栏了:evil:
还好代码类似,临时改了一下,试下来还可以 边学js边做的代码,自我感觉效果还可以,只在自己一台机器上成功,版本3.5.6 据我所知现在的CSS无法设延迟。所以先把这段STYLISH里的CSS代码删掉。 PS. 我觉得如果只是改CSS的话,在userChrome.css里改就是了,不需要特别装STYLISH 接下来 1、安装userChromeJS (userChrome.js) http://userchromejs.mozdev.org/ 页面里找Installation下的 userChromeJS v1.1 这个扩展可以调用自己的脚本来为FX界面增加功能 2、装完,重启 在配置文件夹里的chrome子文件夹下,会出现一个userChrome.js的文件 用文本编辑器(比如Notepad2、记事本等)打开这个文件 在最后,新增加一行,写上 userChrome.import("autohide.uc.js", "UChrm"); 保存,关闭文件 3、把下面的代码保存成autohide.uc.js文件后,放进配置文件夹下的chrome子文件夹里(和userChrome.js同样位置) 重启FX 然后把鼠标移动到菜单栏地址栏就会出现 再把鼠标移动到网页位置则隐藏,延迟5秒隐藏 // ==UserScript== // @name autohide // @include main // @description 隐藏地址栏,鼠标移出一定时间则隐藏地址栏 // @compatibility Firefox 3.5 // ==/UserScript== var ucjsAutoHide = { UPDATE_INTERVAL: 1000, // 计数间隔,单位毫秒,必须与count中this.ct自增量同步调整 ct: 0, // 计数器 sch: 0, // 是否计数中 _updateTimer: null, // 隐藏 init: function() { var tb = document.getElementsByTagName('toolbar'); for (i=0;i<tb.length;i++){ if (tb[i].className != 'chromeclass-menubar') tb[i].style.visibility = 'collapse'; } }, // 显示 showtb: function() { if (this._updateTimer) { window.clearTimeout(this._updateTimer); this._updateTimer = null; } this.ct = 0; this.sch = 1; var tb = document.getElementsByTagName('toolbar'); for (i=0;i<tb.length;i++){ if (tb[i].className != 'chromeclass-menubar') tb[i].style.visibility = 'visible'; } }, // 判断鼠标在菜单栏停留时间,以判断是否显示 count: function() { this.sch = 0; this.ct = this.ct + 1000; // this.ct >= [数值],[数值]必须比所需要停留时间多1000 if (this.ct >= 6000) { this.init(); if (this._updateTimer) { window.clearTimeout(this._updateTimer); this._updateTimer = null; this.ct = 0; } } else { var callback = function(self) { self.count(); }; // 递归 this._updateTimer = window.setTimeout(callback, this.UPDATE_INTERVAL, this); } }, // 判断count是否在执行中 srtc: function() { if (this.sch != 0){ this.count(); } }, }; // 判断是否是主窗口 if (location != "chrome://browser/content/browser.xul") throw "stop"; // 执行隐藏 ucjsAutoHide.init(); // 监听 执行显示 document.getElementById("navigator-toolbox").addEventListener("mouseover", function() { ucjsAutoHide.showtb(); }, false); //监听 执行隐藏 document.getElementById("appcontent").addEventListener("mouseover", function() { ucjsAutoHide.srtc(); }, false); |
|
3楼#
发布于:2009-12-22 00:34
有一个问题
因为现在上面代码是“速显慢隐”影响不太大 但是如果是“慢显”(鼠标停留后隔几秒出现地址栏)就容易发现 当我鼠标在操作菜单时,地址栏仍然是会弹出的 弹出菜单被抓在了navigator-toolbox里面了 如果我希望操作弹出菜单时,地址栏可以不出现应该怎么做 怎么获取navigator-toolbox下面,除了那些id为menu_FilePopup等等的菜单元素意外的集合? |
|
4楼#
发布于:2009-12-22 00:34
哇靠....
你太有才了。慢隐有很大的好处,平时我用鼠标在搜索栏切换引擎时。因为引擎多了所以切换过后总是会被隐藏,我又要重新将鼠标划上去将其弹出。 现在好了,终于解决了。 这个看似这是个小问题,其实这是个很实在并且很心烦的问题。 对于很多简洁的火狐用户来说,这无疑是个极好的脚本 我的火狐是用的陵川3.57优化绿色版,速度是飞快的。 在界面上我将菜单栏、地址栏、状态栏和书签工具栏、都隐藏了,只留下被压缩后的标签栏,我唯一不满意的就是书签工具栏和地址栏的隐藏脚本。 再次感谢你.....不愧为“千年狐狸” |
|