Home > 分 享 > 在主题中添加 LavaLamp 菜单效果

在主题中添加 LavaLamp 菜单效果

2009年5月14日 字体大小 发表评论 阅读评论

1. 下载经我修改过的 LavaLamp 代码
下载 lavalamp.js 文件, 并将文件放置到 js 目录.

2. 加载 jQuery 库
head 部分的 <?php wp_head(); ?> 前方添加以下代码: (iNove 主题的 head 部分在 templates/start.php 文件中, 其他主题一般在 header.php 中可以找到.)

1
<?php wp_enqueue_script('jquery'); ?>

或者

1
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>

两个方法其实都是引用 jQuery 的 JavaScript, 有什么不一样呢? 前者是使用博客服务器上的 jQuery, 如果其他插件也要调用 jQuery 则无需两次装载代码; 而后者是使用 Google 服务器上的代码, 很多其他网站也使用这个文件, 所以它可能已被保存在本机 cache 中.

3. 加载 LavaLamp 菜单
</body> 前方添加以下代码: (iNove 主题的 head 部分在 templates/end.php 文件中, 其他主题一般在 footer.php 中可以找到.)

1
2
3
4
5
6
7
8
9
10
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/lavalamp.js"></script>
<script type="text/javascript">
jQuery(document).ready(
	function(){
		jQuery(function() {
			jQuery("#menus").lavaLamp({fx:"backout", speed:700})
		});
	}
)
</script>

注意: jQuery("#menus") 是找到 iNove 主题菜单的 ul 部分, 其他主题请替换为相应代码.

4. 在 style.css 中添加 LavaLamp 菜单的样式代码

如果你用的是 iNove 主题, 请下载 lava.gif (我使用的是深色的,下载地址1  谷歌主机地址2)图片并放置到 img 目录中; 删除 style.css 文件中包含 #menu 的样式, 并添加下列 CSS 代码. 其他主题可能需要修改 CSS 代码.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#menus {
	position:relative;
	padding-left:10px;
	float:left;
}
#menus li {
	float:left;
	display:inline;
	list-style:none;
}
#menus li a {
	position:relative;
	color:#382E1F;
	height:30px;
	line-height:30px;
	padding:0 20px;
	text-decoration:none;
	font-size:11px;
	float:left;
	z-index:10;
	text-align:center;
}
#menus li.current_page_item a {
	font-weight:bolder;
}
#menus li.back {
	background:url(img/lava.gif) no-repeat right bottom;
	height:30px;
	position:absolute;
	z-index:8;
}
#menus li.back .left {
	background:url(img/lava.gif) no-repeat left top;
	height:30px;
	margin-right:9px;
	float:none;
}
#menus li ul {
	display:none;
	background:#F4F5F7;
	border:1px solid #CCC;
	border-top-color:#A6A6A6;
	padding:0 5px;
}
#menus li li {
	float:none;
	margin:0 !important;
	margin:0;
	padding:0;
	display:block;
	list-style:none;
}
#menus li li a {
	float:none;
	display:block;
	padding:7px 5px;
	text-decoration:none;
	width:200px;
	border-style:solid;
	border-color:#DDD;
	border-width:1px 0 0;
	margin:0;
	background-image:none;
	height:auto;
	line-height:145%;
	color:#999;
	text-align:left;
}
#menus li li.first a {
	border-top:none;
}
#menus li li a:hover {
	color:#382E1F;
}

5. 删除多余的代码 (针对 iNove 主题)
在 templates/header.php 中删除以下代码:

1
<li><a class="lastmenu" href="javascript:void(0);"></a></li>

6. 修改子菜单的 JavaScript 代码 (针对 iNove 主题)
打开 js/menu.js 文件并修改 activate 方法.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
activate: function() {
	this.title.className += ' current';
 
	var pos = cumulativeOffset(this.title);
	var left = pos[0];
	if (this.align == 'right') {
		var offset = getWidth(this.title) - getWidth(this.body) + this.offset;
		left += offset;
	}
	var top = pos[1] + getHeight(this.title);
 
	if(this.offset == -1) {
		var pos2 = cumulativeOffset(document.getElementById('navigation'));
		left -= pos2[0];
		top -= pos2[1];
	}
 
	setStyle(this.body, 'left', left + 'px');
	setStyle(this.body, 'top', top + 'px');
	setStyle(this.body, 'visibility', 'visible');
	setStyle(this.body, 'opacity', this.opacity);
	setStyle(this.body, 'MozOpacity', this.opacity);
	setStyle(this.body, 'KhtmlOpacity', this.opacity);
	setStyle(this.body, 'filter', 'alpha(opacity=' + this.opacity * 100 + ')');
 
	if(this.tid) {
		clearTimeout(this.tid);
	}
	this.tid = setInterval(bind(this, this.appear), 20);
}

按照以上步骤操作应该不会有什么问题的, 而在不同的主题中可能需要修改的地方有两处. 一是第 3 步 #menus 可能要换成其他能找到菜单 ul 的路径; 二是第 4 步的 CSS 需要作针对性修改.

本文于 2009 年 5 月 12 日大幅更新!

转自:http://www.neoease.com/lavalamp-for-wordpress-users/
参考资料: LavaLamp for jQuery Lovers
------------------------------------
090819更新(感谢光影分享解决方案):
iNove 1.4.6 和之前的版本有小小不同
旧版本中使用的当前页面样式为:#menus li.current_page_item a
而新的版本使用的样式标签不一样,应该改为:#menus li.current-cat a
同时要记得修改lavalamp.js中的相关代码哦,将current_page_item修改为current-cat。
这样,当前样式就可以使用了。
如果不想修改样式也可以修改代码了。

分类: 分 享 标签: , , , 浏览644 次
声明: 本站内容遵循 署名-非商业性使用-禁止演绎 2.5 共享协议. 原创文章转载 请注明转自 守望的麦子

相关文章 随机文章 本月热评 热门标签

    1. 2009年8月17日16:47 | #1

      多谢麦子兄弟的分享啊,我也用上了lavalamp,给你看看哈

      http://imateng.com/2009/08/wordpressinove1-4-6caidanlanlavalampjqueryxiaoguo.htm

      [回复]

      CHINA CHINA Mozilla Firefox Mozilla Firefox 3.5.2 Windows Windows XP
    2. 2009年8月17日22:58 | #2

      @光影
      看到了!不错!

      [回复]

      CHINA CHINA Internet Explorer Internet Explorer 7.0 Windows Windows XP
    3. 逆流鱼
      2009年9月3日21:12 | #3

      我用的是WP转zblog的inove主题 LavaLamp菜单怎么记住栏目状态啊 总是停留在第一个

      [回复]

      CHINA CHINA Internet Explorer Internet Explorer 6.0 Windows Windows XP
    4. 2009年9月3日23:22 | #4

      @逆流鱼
      注意iNove原版主题的menu.js文件……

      [回复]

      CHINA CHINA Internet Explorer Internet Explorer 7.0 Windows Windows XP
    5. 2009年9月17日10:30 | #5

      @逆流鱼
      兄弟看看我的帖子啊,看了就知道怎么解决了,嘿嘿

      [回复]

      CHINA CHINA Internet Explorer Internet Explorer 7.0 Windows Windows XP
    6. 2010年12月22日13:31 | #6

      麦子,请教一个问题。
      我按照MG12的方法,发现使用lavalamp后,RSS的菜单就会消失,然后看到有朋友说在activate后面的}后加一个,号来解决。虽然RSS菜单弹出来了,但不是渐变的了。

      我看到你的RSS弹出订阅菜单是渐变的,而且也用的lavalamp,请问麦子是怎么解决这个冲突的呢?

      [回复]

      麦子 回复:

      @RuiAlessio, 相关的JS代码及引用要注意先后顺序……你的连接怎么打不开?

      ITALY ITALY Mozilla Firefox Mozilla Firefox 3.6.13 Windows Windows XP
    7. 2010年12月22日21:21 | #7

      我在困惑RSS的JS和LAVALAMP菜单的JS在哪里出了问题了lol,因为我是一步步按照教程上写的去操作的,特别困惑。
      然后我看到很多朋友有类似的问题,说在activate那一段的最后一个}后面加上一个逗号。加上去后确实能弹出RSS的菜单,可是不是渐渐出现,而是瞬间弹出了。

      而我看麦子的就没有这个问题。
      麦子能否把你的JS打包传一下,或者告诉大家是JS的调用是插在哪里的呢?小生谢过了先。。 :razz:

      [回复]

      RuiAlessio 回复:

      @RuiAlessio, 晕乎了,表情显示出来居然和选择的不一样?哈哈~

      麦子 回复:

      @RuiAlessio, 我用的JS在 http://www.boxcn.net/shared/75skrj53hz 下载,JS要放在jQuery库的后面,在jQuery库后紧跟加载JS试试

      RuiAlessio 回复:

      @RuiAlessio, 试过,还是无效,我也是那个地址下载的。。。晕了。。。

      ITALY ITALY Mozilla Firefox Mozilla Firefox 3.6.13 Windows Windows XP
    1. 本文目前尚无任何 trackbacks 和 pingbacks.