首页 > WordPress > PhilNa2首页文章收缩及问题修复

PhilNa2首页文章收缩及问题修复

今天终于有空写写这个了.话说这个效果最先是木木 博客上的效果,可惜现在连木木都不用了,他又换上了宽屏,看着好大气....
虽然木木不用了.可是好多人还没用上啊.所以我感觉就有写写的必要.毕竟这个效果真的很好.可以很节约首页空间,而且在一定程度上感觉很炫(这样也算炫?好吧.我承认我老土了 :jiong: )
为了实现这个效果,我也算是花了不少的功夫. 光copy代码还不行,还要根据自己的主题进行一番改造才可以.原来刚刚弄到自己的博客上的时候,潜伏了好多的小问题.最近也解决的差不多了.所以有必要向大家汇报一下了.哈哈.
别的也不多说了.还是代码神马的管事.霍霍.

最先看到的是木木的文章 首页文章伸缩效果代码分享 后来又翻到了改进后的代码 [jQuery] 首页文章伸缩新方式新代码,我看到改进后的代码效果更好了.所以就在新代码的基础上按照自己的主题进行了一下修改.
建议大家把木木原来的代码和我修改后的代码对照看一下.这样就可以明白修改的地方有神马了,这样以后再有神马别的代码,就可以按照思路给自己添加了.

具体步骤.
首先在style.css里面将文章部分的css代码变成隐藏(根据自己的主题调整),即

CSS CODE
#content .post_content{display:none}

然后是主角, jquery代码,来自木木的文章[jQuery] 首页文章伸缩新方式新代码,我只是把提到的元素换成了我主题里面的对应元素(如果您用的不是philna2主题,请到木木的博客上看源代码,然后按照自己的主题进行修改),

JAVASCRIPT CODE
$('#content .post_title').click(function(){ //点击class="post-title"元素(即文章标题)触发事件
	if($(this).next().next().is(':visible')){ //若其相邻的下一个再下一个元素(.post-content,即所点击标题的文章内容)属性为"可见",则执行下述代码
		$(this).children().text('页面载入中……'); //让其子元素(.post-title a,即所点击的文章标题)文字改为"页面载入中……"
		window.location = $(this).children("a").attr('href'); //取得其子元素(.post-title a)内的href属性并打开;
	}else{ //反之,即.post-content属性为不"可见"(CSS已设置 .post-content{display:none})
		$('#content .post_content').slideUp(300); //让所有class="post-content"元素以300毫秒速度收缩
		$(this).next().next().slideDown(500,
            function() {
                $body.animate({
                    scrollTop: $(this).offset().top - 180
                },
                400)
                });//让其相邻的下一个元素(.post-content)以500毫秒速度收缩
	}
	return false; //阻止默认点击打开新窗口事件发生
});
$('#content .post_title:first').click(); //模拟用户点击第一个class="post-title"元素(即首篇文章标题)

这样弄完基本上就可以出现效果了,如果没有神马要求的话.就是这么简单.

但是我在使用此效果后还发现了一些问题.所以在这里一并说说,让大家少走点弯路.
第一个是 文章页的问题.
上述代码和css会使文章部分处于隐藏状态.然后等待jquery代码模拟用户点击标题展开文章.
但是我遇到的问题就是,进入文章页时,如果网络状况不是很好的话.浏览者先看到的只是一个标题.必须要等网页内容加载完毕之后,jquery代码才会模拟用户点击标题. 恰好我用了无觅,无觅的速度确实不怎么快,所以大部分时间文章的内容部分都是隐藏状态.于是我就想在首页点击标题进入文章页后不再隐藏.我还特意去木木那里请教了一下.但是也没有神马结果.只好自己看着解决了.
我的办法说来也不高明,就是改一下文章页部分的ID号,由于jquery的选择器是根据ID号进行定位的.所以我把ID号改了,就不会出现这种情况了.
说的有点多.上代码.
在template.php文件中,将

HTML4STRICT CODE
<div id="content">

改为如下代码

PHP CODE
<?php if(is_single() || is_page()):?>
			<div id="content2">
		<?php else: ?>
			<div id="content">
		<?php endif;?>

这样,在文章页还有独立页面,ID号是content2, jquery代码就不起作用了.
还需要做的就是在style.css中添加ID为content2的css代码,和content的一样就可以了. 修改后的css为

CSS CODE
#content{float:left;width:662px;}
/*首页隐藏文章*/
#content .post_content{display:none}
#content2{float:left;width:662px;}

这样做完,文章页面就不会隐藏了,现在看来这么简单.当时我还停用过无觅一段时间,发现速度提升并不是很明显.后来又想过把无觅单独拿出来放到文章页下面,单独使用一个div,就像现在文章下方的效果.但是对网络的依赖还是很大.都会出现文章先隐藏,然后再展开的情况.所以使用这个改ID的办法,可以说是完美解决.呼呼.
-----------------------------------------
文章页的问题解决了.随之而来的就是 文章页下面的导航,就是那个上一篇,下一篇的导航.感谢奇遇大哥及时告知我这个情况.要不然我是不会发现的.哈哈.
原来的效果是点击一下标题,Ajax加载文章内容.但是现在再点击标题,会出现只是跳到文章部分.但是内容并没有改变.原因就是,此Ajax加载,变更的是ID为content的内容,但是现在的文章页的ID是content2,所以会出现内容无变化的情况.对于这个的修改方法,我觉得我的方法也比较简单.就是修改此主题的函数.
具体位置为 js/philna2.js 主题作者压缩了代码,所以你找个解压缩的网站,解压一下,再看下面的步骤.
解压网站推荐http://box.inote.cc/ 我感觉还不错.
在解压后的代码中寻找

JAVASCRIPT CODE
function k() {
		var w = $("#pagenavi a");
		var v = $("#pagenavi");
		var x = $("#pagenavi").html();........................

这样的代码,然后在有content的地方,添加一个content2,变成像下面的效果

JAVASCRIPT CODE
var B = $("#content2,#content");

在下面的function j()下面好像还有一个,虽然不知道是干嘛的,但是也一并改了.没删除东西,所以请放心,不会出现错误

OK,基本上改完啦.改完代码之后你可以选择再压缩,也可以不压缩,直接粘贴到原philna2.js里面替换原内容也行

这样修改完就不会出现文章页也收缩的情况啦.
首页文章收缩,就这样弄完了.是不是很简单?霍霍,多鼓捣就是变得简单.哈哈
你是否也想试试啊?快点鼓捣吧.哈哈

  1.   帅哥
    Japhia 五 6th, 2011 @ 21:09 | #1
    沙发! 回复 引用

    学习一下

  2.   帅哥
    Japhia 五 7th, 2011 @ 01:57 | #2
    藤椅 回复 引用

    已测试完毕~有个小问题就是某几次当我在首页点击文章标题时,居然就华丽得打开了新浪微博的页面。也就说jQuery在加载顺序上是不是存在问题 可能把我某个新浪微博的链接当成了相邻的下一个元素?
    // 还有就是你的分页导航是怎么弄的 我的分页导航用的PageNavi插件,点击到第二页后 这些收缩又无效了

  3.  Admin
    SayMe 五 7th, 2011 @ 07:00 | #3
    板凳 回复 引用

    @Japhia
    话说你不用睡觉的吗?已经是夜里2点了,还在测试神马的...... :han:
    那个分页导航,我没用插件,我原来有过一篇,是从IM路人 那里弄来的,用代码实现分页导航. 你可以看看哟.然后你再看看首页的分页导航的ID号就明白啦.

  4. shine 五 7th, 2011 @ 10:30 | #4
    地板 回复 引用

    来学习学习

  5.   帅哥
    IM路人 五 7th, 2011 @ 11:16 | #5

    小小的一个伸缩,被你搞得这么有声有色~~

  6.  Admin
    SayMe 五 7th, 2011 @ 15:40 | #6

    @shine
    欢迎常来,呵呵

    @IM路人
    不是我想搞,是用这个效果必须要改这么多才行啊....

  7.   帅哥
    Japhia 五 7th, 2011 @ 17:09 | #7

    我还是没弄明白首页Ajax翻页后怎么仍然能够保持这种效果~~ :cry:

  8.   帅哥
    邓肯 五 16th, 2011 @ 11:12 | #8

    太复杂了 我看都看不懂

    •  Admin
      SayMe 五 16th, 2011 @ 11:18 | #9

      @邓肯
      不是很复杂啊.按照我说的 就可以弄好了.呵呵 Japhia 就是按照我说的自己鼓捣的.
      当时我自己鼓捣 没人给我说还不是一样.弄一次两此以后就会了

评论提交中, 请稍候...

留言

0
NOTICE: You should type some Chinese word (like “你好”) in your comment to pass the spam-check, thanks for your patience!
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks

无觅相关文章插件,快速提升流量