js动态打开层及关闭层超酷特效

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>DOM_text01</title>
<style type="text/css">
body,span,div,td{font-size:12px;line-height:1.5em;color:#849BCA;}
#bodyL{
float:left;
width:84px;
margin-right:2px;
}
a.od{
width:80px;
height:25px;
line-height:25px;
text-align:center;
font-weight:bold;
border: 2px solid #849BCA;
display:block;
color:#547BC9;
float:left;
text-decoration:none;
margin-top:2px;
}
a.od:link{
background:#EEF1F8;
}
a.od:visited{
background:#EEF1F8;
}
a.od:hover{
background:#EEE;
}
a.od:active{
background:#EEE;
}
#fd{
width:500px;
height:200px;
background:#EDF1F8;
border: 2px solid #849BCA;
margin-top:2px;
margin-left:2px;
float:left;
overflow:hidden;
position:absolute;
left:0px;
top:0px;
cursor:move;
float:left;
/*filter:alpha(opacity=50);*/

}
.content{
padding:10px;
}
</style>
</head>
<body>
<div id="bodyL">
<a href="#" class="od" onclick = "show(‘fd’);return false;">
[打开层]
</a>
<a href="#" class="od" onclick = "closeed(‘fd’);return false;">
[关闭层]
</a>
</div>
<div id="fd" style="display:none;filter:alpha(opacity=100);opacity:1;">
<div class="content">移动层</div>
</div>

<script type="text/javascript">
var prox;
var proy;
var proxc;
var proyc;
function show(id){/*–打开–*/
clearInterval(prox);
clearInterval(proy);
clearInterval(proxc);
clearInterval(proyc);
var o = document.getElementById(id);
o.style.display = "block";
o.style.width = "1px";
o.style.height = "1px";
prox = setInterval(function(){openx(o,500)},10);
}
function openx(o,x){/*–打开x–*/
var cx = parseInt(o.style.width);
if(cx < x)
{
   o.style.width = (cx + Math.ceil((x-cx)/5)) +"px";
}
else
{
   clearInterval(prox);
   proy = setInterval(function(){openy(o,200)},10);
}
}
function openy(o,y){/*–打开y–*/
var cy = parseInt(o.style.height);
if(cy < y)
{
   o.style.height = (cy + Math.ceil((y-cy)/5)) +"px";
}
else
{
   clearInterval(proy);  
}
}
function closeed(id){/*–关闭–*/
clearInterval(prox);
clearInterval(proy);
clearInterval(proxc);
clearInterval(proyc);
var o = document.getElementById(id);
if(o.style.display == "block")
{
   proyc = setInterval(function(){closey(o)},10);  
}
}
function closey(o){/*–打开y–*/
var cy = parseInt(o.style.height);
if(cy > 0)
{
   o.style.height = (cy – Math.ceil(cy/5)) +"px";
}
else
{
   clearInterval(proyc);   
   proxc = setInterval(function(){closex(o)},10);
}
}
function closex(o){/*–打开x–*/
var cx = parseInt(o.style.width);
if(cx > 0)
{
   o.style.width = (cx – Math.ceil(cx/5)) +"px";
}
else
{
   clearInterval(proxc);
   o.style.display = "none";
}
}

/*————————-鼠标拖动———————*/
var od = document.getElementById("fd");
var dx,dy,mx,my,mouseD;
var odrag;
var isIE = document.all ? true : false;
document.onmousedown = function(e){
var e = e ? e : event;
if(e.button == (document.all ? 1 : 0))
{
   mouseD = true;  
}
}
document.onmouseup = function(){
mouseD = false;
odrag = "";
if(isIE)
{
   od.releaseCapture();
   od.filters.alpha.opacity = 100;
}
else
{
   window.releaseEvents(od.MOUSEMOVE);
   od.style.opacity = 1;
}
}

//function readyMove(e){
od.onmousedown = function(e){
odrag = this;
var e = e ? e : event;
if(e.button == (document.all ? 1 : 0))
{
   mx = e.clientX;
   my = e.clientY;
   od.style.left = od.offsetLeft + "px";
   od.style.top = od.offsetTop + "px";
   if(isIE)
   {
    od.setCapture();   
    od.filters.alpha.opacity = 50;
   }
   else
   {
    window.captureEvents(Event.MOUSEMOVE);
    od.style.opacity = 0.5;
   }
   //alert(mx);
   //alert(my);
}
}
document.onmousemove = function(e){
var e = e ? e : event;

//alert(mrx);
//alert(e.button);
if(mouseD==true && odrag)
{
   var mrx = e.clientX – mx;
   var mry = e.clientY – my;
   od.style.left = parseInt(od.style.left) +mrx + "px";
   od.style.top = parseInt(od.style.top) + mry + "px";  
   mx = e.clientX;
   my = e.clientY;
}
}

</script>
</body>
</html>

深入解析模板技术原理【一】

1、模板的由来
在没有模板技术之前,使用PHP开发程序,通常都是php代码和html混编在一起。比如说新闻列表,很可能就是一个newslist.php页面,结构如下:


<?
//从数据库中读取出要显示的新闻记录
?>
<html>
<head>……..
</head>
<body>
<?
While ($news = mysql_fetch_array($result)) {
?>
<!--输出新闻标题   -- >
<?
}
?>
</body>
</html>

那么这样有什么问题呢?首先,不利于分工合作。一般来说,都会由程序员来写代码,美工人员设计页面。那么在这种方式中,程序员必须等待美工人员把界面设计好才能开始工作。也就是说程序员和美工的工作是不能同步的。其次、不利于维护,可维护性差。比如说程序固定后,要修改界面,那么必须由美工修改后,程序员再重新添加。最后,程序结构混乱,可读性差。HTML和PHP混编在一起,一旦程序一多,就会变的非常的凌乱。
理解模板原理——使用PHP标签的模板技术
模板技术正是为了解决这些问题而出现的,为了解决这些问题,最早出现的是使用php标签的模板技术。
首先,我们要明白模板的目的是什么。模板主要要实现几个任务呢?第一、美工和程序的分离。更确切的说法是获取数据和显示数据的分离。第二、分工。良好的分工合作。
比如说新闻列表,如果使用模板,我们就可以把新闻列表的操作分成两部分:
1、 getnews.php 负责从数据库中读取数据到数组$news中,不关心$news是如何显示的。
2、 Shownews.php 负责把$news数组输出成HTML页面。而它不需要理会$news是从哪里来的。
好,这样,我们就实现了美工和程序的分离,达到了我们的初步目的,但是如何把这两个页面联合起来,并实现listnews.php的功能呢?
这就需要另外一个页面listnews.php,来负责把“美工(显示数据)”和“程序员(获取数据)”连接起来。应该说这个页面就是很简单了。
假设getnews.php的代码如下:

<?
$news =“新闻列表”;//实际中应该是从数据库中读取出来的。
?>

Shownesw.php的代码如下:

<html>
<head>
<title>显示新闻</title>
</head>
<body>
<?=$news?>
</body>
</html>

那么,这个联合页面listnews.php的代码就很简单了

<?
Include(‘getnews.php’);//获取数据
Include(‘shownesw.php’);//显示数据
?>

总结
使用PHP标签的模板系统,能够很好的实现美工和程序的分离,同时方便程序员和美工人员的分工合作,比如在上面的例子中shownews.php由美工人员来维护,getnews.php由程序人员来维护。而listnews.php就可以由系统设计人员来维护了。当然这中间需要增加一些约定的文档。
事实上,这个简单的例子也说明了最基本的MVC模型。其中M,模型,也就是负责读取数据,相当于我们的getnews.php。V,就是试图,用来显示数据,也就对应了shownews.php。最后是控制器C,对应我们的listnews.php
学习解释性模板技术——PHPLIB
Phplib的模板系统以小巧灵活、方便简单的特点赢得了很多phper的喜欢,在模板技术中占有一定的地位,它和fasttemplate之类的模板引擎都属于解释性模板技术。
在具体讲解phplib的使用之前,先说明为什么使用php标签的模板系统要继续改进。其实,这主要还是因为PHP标签对美工人员来说不方便。他们更加喜欢直接使用这种可视化的标签,比如{title}。
首先,我们自己把之前我们那个例子修改成使用可视化的标签来处理。第一步,把shownews.php改成shownews.tpl,里面的php标签换成可视化的标签,shownews.tpl的代码如下:

<html>
<head>
<title>显示新闻</title>
</head>
<body>
{title}
</body>
</html>

第二步,如何实现listnews.php的效果呢?其实很简单,我只要直接把{title}替换成不就可以了吗?所以,修改后的listnews.php的代码如下:

<?
Include('getnews.php');//获取数据
echo str_replace('{title}',$news,file_get_contents('shownews.tpl'))
?>

其实phplib的原理正是这样!比如说我们要使用phplib来实现上面功能,我们只需要修改listnews.php.修改后代码如下:

<?
Include('getnews.php');//获取数据
include('template.class.php');
$t=new Template();
$t->set_file(‘shownesw,'shownews.tpl');
$t->set_var('news',$news);
$t->parse('out', ‘shownesw’);
$t->p('out');
?>

另外关于phplib的区域,大家可以去查阅相应的手册。
编译型的samrty,下次继续讲

网页尺寸的界定

由于页面尺寸和显示器大小及分辨率有关系,网页的局限性就在于你无法突破显示器的范围,而且因为浏览器也将占去不少空间,留下给你的页面范围变得越来越小。一般分辨率在800×600的情况下,页面的显示尺寸为:780×428个象素;分辨率在640×480的情况下,页面的显示尺寸为:620X311个象素;分辨率在1024X768的情况下,页面的显示尺寸为:1007×600。从以上数据可以看出,分辨率越高页面尺寸越大。
浏览器的工具栏也是影响页面尺寸的原因。一般目前的浏览器的工具栏都可以取消或者增加,那么当你显示全部的工具栏时,和关闭全部工具栏时,页面的尺寸是不一样的。
在网页设计过程中,向下拖动页面是惟一给网页增加更多内容(尺寸)的方法。但我想提醒大家除非你能肯定站点的内容能吸引大家拖动,否则不要让访问者拖动页面超过三屏。如果需要在同一页面显示超过三屏的内容,那么你最好能在上面做上页面内部连接,方便访问者浏览。
1、800*600下,网页宽度保持在778以内,就不会出现水平滚动条,高度则视版面和内容决定。
2、1024*768下,网页宽度保持在1002以内,就不会出现水平滚动条,高度则视版面和内决定。
3、在ps里面做网页可以在800*600状态下显示全屏,页面的下方又不会出现滑动条,尺寸为740*560左右  
4、在PS里做的图到了网上就不一样了,颜色等等方面,因为WEB上面只用到256WEB安全色,而PS中的RGB或者CMYK以及LAB或者HSB的色域很宽颜色范围很广,所以自然会有失色的现象
5、1024*768 下网页的尺寸:width=955,height=600
800*600 下网页的尺寸:width=760,height=420

一般分辨率在800×600的情况下,页面的显示尺寸为:780×428个象素;
分辨率在640×480的情况下,页面的显示尺寸为:620X311个象素;
分辨率在1024X768的情况下,页面的显示尺寸为:1007×600


网页尺寸,随心缩放
通常情况下,IE浏览器中显示出来的网页,其尺寸大小相对是固定不变的,访问者想自行改变浏览页面的大小时,往往只能通过设置显示分辨率的方法,来简单地改变浏览页面的尺寸大小,不过这种方法对网页尺寸的缩放程度非常有限。其实利用“打印预览”命令,你能随心所欲地缩放网页尺寸。
首先用IE打开需要进行尺寸缩放的目标页面,再单击IE菜单栏中的“文件”选项,从弹出的下拉菜单中执行“打印预览”命令(要使该命令有效,必须事先安装好打印机或虚拟打印机);随后IE浏览页面将被自动切换到“打印预览”模式下,此时你可以连续单击工具栏中的“放大”图标,对当前页面的尺寸进行任意放大,同样可以对目标页面的尺寸进行随意缩小,当然也可以在图4窗口的缩放比例列表中,指定一个合适的缩放比例;例如要将网页尺寸放大一倍的话,就可以将缩放比例设置为“200%”,要想将网页缩小一倍显示的话,可以将缩放比列设置为“50%”。

原文出自:style

爱聚合破解版带注册机 那是不能用的

爱聚合破解版前一阵子在网络上流行,就有用它建个垃圾站的想法,百度K不K先不说,主要是省事,正好手中还有几个闲置的域名拿来试试,网上主要流行的现在是一个叫什么爱聚合5.0破解版带注册机的版本,下载打开爱聚合5.0破解版的压缩包里面有个《注册机.exe》的文件,这就是所谓的注册机了,打开后的截图是这个样子:
爱聚合5.0破解版带注册机
你仔细研究下就会发现它其实这个并不是一个真正的应用程序,它只是加载了一个网络上的页面,当这个网址找不开的时候你的注册机也就打不开了,在你的注册机里也会显示你用浏览器打不开页面时的信息,然后你再点这个注册机的“提交”按钮,它会提示你需要保存一个文件,这个文件就是所谓的授权文件,这时候你会发现它的原形了,在这个对话框上你有名称:setup.php、类型:php script、从:www.ttpals.com这说明你要保存的文件是从www.ttpals.com这个网站上发送过来的,如果用些相关的Http协议分析软件跟踪,在你点提交的时候提交的网址是:http://www.ttpals.com/system/indtle.php,打开看看是什么?呵呵,和你的注册机是不是一样?
到这里我们也并不能说些什么,接下来请看:
打开:http://www.ttpals.com/system/,因为它没有指定默认打开文件,所以你就看到这个文件目录了,在里面有个"c.txt"的文件,点击打开它,或者另存为下载也可,到现在已经差不多快1M了, 这些都是使用过爱聚全破解版的网址,当然如果刚才你填写了自己的网址,到文件的最后面找找也会有你的网址的,这些信息对爱聚合的官方来说可是一笔财富,可以根据这些信息找到你的网址,让你另外购买正版也好,起诉也好,啊…,也不知当你看到这些信息的时候这些证据还在不在,嗯,自己先存一份。
网上还有另外几种版本,也是这个样子的,都是用的www.ttpals.com这个网站的,有兴趣的也可以研究下自己也写个注册机发到论坛里,弄些流量,呵呵,不多说了。

爱聚合5.0破解版下载:http://www.xun6.com/file/06ddb1527/iJuhe.rar.html

解压密码为:cn-yes.com

jquery 实现加两行输入框表格实现自动路由功能

一下是代码:记得要用JQuer。 目前删除功能如果删除的是在中间位置,会所删下面填入数据一起删掉,谨慎使用。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">     
<html xmlns="http://www.w3.org/1999/xhtml">     
<head>     
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />     
<script type="text/javascript" src="jquery.js"></script>     
<title>Table</title>     
<script>     
$(document).ready(function(){     
var _val=$("#content_show").val();     
//接入码     
$("#access_id").change(function(){     
var _tmp=$(this).val();     
if(_tmp==""||_tmp.length==0)     
{     
if(_val==""||_val.length==0)     
{     
return;     
}     
else     
{     
var _pos=_val.indexOf("+");//int _pos=_val.indexOf("+");     
var _len=_val.length;     
_val=_val.substr(_pos+1,_len);     
}     
}     
else     
{     
_val=_tmp+"+"+_val;     
}     
$("#content_show").val(_val);     
}) 
//命令字 没完成    
$("#command_id").change(function(){     
var _tmp=$(this).val();     
if(_tmp==""||_tmp.length==0)     
{     
if(_val==""||_val.length==0)     
{     
return;     
}     
else     
{     
var _pos1=_val.indexOf("+");     
var _pos2=_val.indexOf("#");     
if(_pos2<0)     
_pos2=_val.length;     
_val=_val.substr(_pos1+1,_pos2);     
}     
}     
else     
{     
_val=_val+$(this).val()+"+";     
} 
$("#content_show").val(_val);    
})     
$("#but").click(function(){     
var $tr=$("#tab_child tr");     
var _len=$tr.length;     
/*     
//测试添加<tr/>标签内容     
alert("<tr id='"+_len+"'>n"     
+"<td align='center'>"+_len+"<input type='checkbox' style='display:none' name='recorder' value='"+_len+"'/></td>n"     
+"<td align='center'><input type='text' id='para"+_len+"' name='para"+_len+"' />n"     
+"<td align='center'><a href='#' onclick='deltr("+_len+")'>删除</a></td>n"     
+"</tr>n");     
*/     
$("#tab_child").append("<tr id='"+_len+"'>"     
+"<td align='center'>"+_len+"<input type='checkbox' style='display:none' name='recorder' value='"+_len+"'/></td>"     
+"<td align='center'><input type='text' id='para"+_len+"' name='para"+_len+"' />"     
+"<td align='center'><a href='#' onclick='deltr("+_len+")'>删除</a></td>"     
+"</tr>");     
}) 
//测试,打印整个<table/>的内容    
$("#info").click(function(){     
alert($("#tab_child").html());     
}) 
//初始化可路由模块    
for(var i=1;i<=5;i++)     
{     
$("#klymk").append("<option value='"+i+"'>模块"+i+"</option>");     
} 
//初始化已路由模块    
// do something here... 
//初始化增加,移除按钮状态    
changeButtonStatus(); 
//增加按钮操作    
$("#item_add").click(function(){     
var _all=$("#klymk>option").length;     
if(_all>0)     
{     
var _len=$("#klymk>option:selected").length;     
if(_len<=0)     
{     
alert('请选择需要添加的模块名称!');     
return;     
}     
else     
{     
$("#klymk>option:selected").each(function(){     
$("#ylymk").append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");     
var _val=$("#showbox").val(); //获得隐藏域的值     
_val=_val+$(this).val()+"+"+$(this).text()+",";     
$("#showbox").val(_val);     
// alert("隐藏域的值的值: "+$("#showbox").val());     
$(this).remove();     
})     
changeButtonStatus();//改变按钮状态     
}     
}     
else     
{     
$(this).attr("disabled","true");     
}     
})     
$("#item_del").click(function(){     
var _all=$("#ylymk>option").length;     
if(_all>0)     
{     
var _len=$("#ylymk>option:selected").length;     
if(_len<=0)     
{     
alert('请选择需要移除的模块名称!');     
return;     
}     
else     
{     
$("#ylymk>option:selected").each(function(){     
$("#klymk").append("<option value='"+$(this).val()+"'>"+$(this).text()+"</option>");     
var _val=$("#showbox").val(); //获得隐藏域的值     
var _str=$(this).val()+"+"+$(this).text()+",";     
_val=_val.replace(_str,"");     
$("#showbox").val(_val);     
// alert("隐藏域的值的值: "+$("#showbox").val());     
$(this).remove();     
})     
changeButtonStatus();//改变按钮状态     
}     
}     
else     
{     
$(this).attr("disabled","true");     
} 
})    
}) 
//删除选中的<tr/>    
var deltr=function(index){     
// alert("删除第 "+index+"行");     
$tr=$("#tab_child tr");     
var _len=$tr.length;     
if(index>_len)     
{     
return;     
}     
else     
{     
// alert($("tr[id='"+index+"']").html());     
if(confirm('您确定删除该记录吗?'))     
{     
$("tr[id='"+index+"']").remove(); //删除当前行     
for(var i=index+1;i<_len;i++)     
{     
var _val=$("#para"+i).val();     
$("tr[id='"+i+"']").replaceWith("<tr id='"+(i-1)+"'>"     
+"<td align='center'>"+(i-1)+"<input type='checkbox' style='display:none' name='recorder"+(i-1)+"' value='"+(i-1)+"'/></td>"     
+"<td align='center'><input type='text' id='para"+(i-1)+"' name='para"+(i-1)+"' value='"+_val+"' />"     
+"<td align='center'><a href='#' onclick='deltr("+(i-1)+")'>删除</a></td>"     
+"</tr>");     
}     
}     
else     
{     
return;     
}     
}     
} 
//改变增加、移除按钮的状态    
var changeButtonStatus=function()     
{     
var klymk_len=$("#klymk>option").length;     
var ylymk_len=$("#ylymk>option").length; 
//可路由模块    
if(klymk_len<=0)     
{     
$("#item_add").attr("disabled","true");     
}     
else     
{     
$("#item_add").removeAttr("disabled");     
// $("#item_add").get(0).disabled=false;     
// $("#item_add")[0].disabled=false;     
}     
//已路由模块     
if(ylymk_len<=0)     
{     
$("#item_del").attr("disabled","true");     
}     
else     
{     
$("#item_del").removeAttr("disabled");     
}     
}     
</script>     
</head>     
<body>     
<table id="tab_parent" border="1" width="80%" align="center">     
<tr>     
<td>输入展示</td>     
<td><input type="text" id="content_show" name="content_show" size="50" value="" readonly="readonly" /></td>     
</tr>     
<tr>     
<td>接入码</td>     
<td><input type="text" id="access_id" name="access_id" /></td>     
</tr>     
<tr>     
<td>命令字</td>     
<td><input type="text" id="command_id" name="command_id" /></td>     
</tr>     
<tr>     
<td>参数</td>     
<td>     
<table id="tab_child" border="1" width="100%">     
<tr>     
<td width="20%" align="center">序号</td>     
<td align="center">参数名称</td>     
<td align="center">操作</td>     
</tr>     
</table>     
<input type="button" id="but" value="add"/>     
<input type="button" id="info" value="show"/>     
</td>     
</tr>     
</table> 
<br/> 
<table width="80%" cellpadding="0" align="center" class="listshow" border="1" cellspacing="0">    
<tr>     
<td align="center">可路由模块</td>     
<td align="center">&nbsp;&nbsp;</td>     
<td align="center">已路由模块</td>     
</tr>     
<tr>     
<td class="black" width="30%" align="center" height="150">     
<select id="klymk" multiple="multiple" style="text-align:center;width:300px;height:150px;"><!-- 设置multiple属性,支持多选 -->
</select>    
</td>     
<td align="center" width="5%">     
<input type="button" id="item_add" value="增加" />     
<br/>     
<br/>     
<input type="button" id="item_del" value="移除" />     
</td>     
<td class="black" width="30%" align="center">     
<select id="ylymk" multiple="multiple" style=" text-align:center;width:300px;height:150px;"> 
</select>    
<input type="hidden" value="" id="showbox" name="showbox" />     
</td>     
</tr>     
</table>     
</body>     
</html>

效果自己测试:

你会关心吗?她会关心吗?

拉你右手  21:55:22
我怎么了
小葱  21:55:35
我没怎么啊
小葱  21:56:03
我怎么了,你会关心吗?
小葱  21:56:50
就算你会关心,她会关心了吗?

小葱  21:56:51
算你会关心,她会关心,她会关心了吗?

小葱  21:56:53
你会关心,她会关心,她会关心,她会关心了吗?

小葱  21:56:59

关心,她会关心,她会关心,她会关心,她会关心了吗?

小葱  21:56:59

关心,她会关心,她会关心,她会关心,她会关心,她会关心了吗?

拉你右手  21:56:01

你到低怎么了?

小葱  21:55:35
我没怎么啊
小葱  21:56:03
我怎么了,你会关心吗?
小葱  21:56:50
就算你会关心,她会关心了吗?

小葱  21:56:51
算你会关心,她会关心,她会关心了吗?

小葱  21:56:53
你会关心,她会关心,她会关心,她会关心了吗?

小葱  21:56:59

关心,她会关心,她会关心,她会关心,她会关心了吗?

小葱  21:56:59

关心,她会关心,她会关心,她会关心,她会关心,她会关心了吗?

从此一篇无聊的日志诞生了

我想说,有时候有的聊比无聊更可怕。

已走过的20年–纪实生活喜剧

20岁,不多不少,每天听到周围关于20人生黄金阶段教授,却又从四处传来20岁别太计较,当你走过之后会发现一切都是幼稚的成长而已。

我比较认同一切都是比较幼稚的成长的观点,也正如此我这20年也就没取得在同龄人面前值得炫耀的成绩。

一直在幼稚的成长着,唯有能让自己沾沾自喜的也就是偶尔会自己跳出自己的思想,回望一下自己成长的路,从旁观者的角度看自己多样的生活,那是也便是我最大的收获,收获了一份属于自己的生活喜剧:{关于生活:悲观的人看它是一场闹剧,享受的人看它是一场喜剧。}

接下来的日子,与我一起看小葱演绎《小葱成长-已走过的20年》

熬至滴水成珠-好书推荐

池莉著

人生的春(1) 

————看看豆瓣上激烈的热评》》 去当当购买《熬至滴水成珠》

        有一种春,是无法守候的。这就是人生的春。人生的春往往与年龄没有关系,却只是一种苏醒。这样的苏醒,如偏僻乡村篱笆上的野玫瑰,花朵开得烂漫,意象上却单单只有光明,简单,敦厚与宁静。

不要以为意象上的光明,简单,敦厚与宁静容易得到。更不要以为有了偏僻乡村,目的就八九不离十了。不是的。这种意象不是浅显的看图说话。能够形成这种意象的,要木篱笆,要野玫瑰,要好阳光,要一道碎石小路,从篱笆下面蜿蜒伸出,远远地,远远地深入到了起伏的山坡,要山坡上有茂密的针叶林,要林子里淡淡地散发着松香。

说的是人呢,说的是人生的春呢,因此这样的比喻也就是说:人生的春,天衣无缝,浑然大气,是先天的天地精华与后天的着意磨砺融会贯通了。

用一种更加日常的话来说,人生的春便是一种懂事。

有一句成语,叫做“少不更事”,可见懂事需要经历,经历需要时间,用漫长的时间去经历,这就是熬了。这个“熬”的意思相当于中草药制作汤药的那个“熬”:煎熬。于是,可以说,意象是煎熬出来的,苏醒是煎熬出来的,人生的春是煎熬出来的。

玄妙的是,需要多少的煎熬呢?又需要多久的煎熬呢?所谓的漫长,那应该是多长呢?法海和尚,老得白胡子一大把,也还是无法彻底圆通,喜欢纠缠白娘子和许仙的家庭婚姻之事。六祖慧能,3岁丧父,自小卖柴养母,连文字都不认识,偶然得闻佛语,心即开悟,于刹那间便明心见性,立刻出家,然后修成正果。像我这样,写作半辈子,也算受了不短的煎熬,且不谈自己的写作,单说艺术鉴赏方面,在十余年前,我就觉得自己也算是知春了。不少著名作家的作品,看上去或巍峨,或工整,或灵动,或俊秀,诠释一个什么道理,都披挂在作品的形式上,十分易于让评论家一眼就看出好了。这些艺术家和评论家都在玩可爱,装童稚气,于大庭广众之下,一个人假装很复杂地把玩具藏起来,而另一个人假装很深刻地找到了它。这种把戏非常容易迷惑具有发言能力,并且乐于表现发言能力的泛知识阶层,大家一热闹一追捧,一伙子人都可以轻而易举获得名利。于此,我会马上露出不屑甚至公开厌恶。我要求文如其人,要求格物致知,要求道德文章真而不伪,要求艺术家首先具备天赐的直接感受人类情感的强大能力,又在后天能够使用这种能力遨游历史现实与人类心灵,然后剥茧抽丝,去繁就简,将他获得的核心理念完全融化在作品的血肉之中。也就是十余年前,我的态度是坚决的激烈的,我会忍不住要与人争论,乃至一言不和便会拂袖而去。我坚信自己看得懂作品也看得出人品。我坚信自己是正确的。

————

人生的春(2)

————

大约是在五年前左右吧,我的坚信开始动摇。我开始强烈地怀疑自己。后来我想明白了,便知道自己最多也就只有一部分的知春。我可以肯定自己的,只有两点,一是有了一些阅读经验,二是有了自己阶段性的艺术标准。别的,就不能被肯定了。我道行再深也就是一个法海和尚,远远不是六祖慧能。

还是要说人。还是人比什么都重要。

还是要把知春放在人的范畴检验,哪怕仅仅是鉴赏艺术作品。正如烧秋一般,若是一把大火烧尽所有季节带来的芜杂繁复,深秋的田野袒露出来的,就是单纯的田野。就这一个道理,一个极其简单明确的道理,足可启我愚蒙,教我知春。这就是:我可以拥有自己的鉴赏经验与艺术标准,但是我却不可以拿自己的经验与标准当作正确本身,当作正派本身,当作美德乃至真理本身。

事实上,偏偏我们太容易把自己当作正确本身,当作正派本身,当作美德乃至真理本身。我们一不小心就会疾恶如仇,因为那是我们从小就被教育被灌输到血液中的美德标准,我们会非常自然地去苛责、要求和打击别的艺术家。尤其在现实生活中,觉得看在眼里的分明是庸俗的,虚伪的,拉帮结派的,学阀作风的,沽名钓誉的,并且还会遇上他人对于自己个人和自己作品的恶意挑衅、谩骂和故意颠倒是非。在这些情况之下,要自己否定自己的真理立场,没有敌意,没有激烈的情绪,不反抗,不鄙视,不出言不逊,实在是很困难。

原来我要说的,还就是我自己,是我自己的渴望知春。

那一天,上午我在阅读以赛亚·柏林的书,下午我在菜地里干农活。当家家户户炊烟升起的时候,我倚靠在篱笆上休息,目光散漫地随着炊烟望到了灰蓝色的天空。武汉深秋与初冬的晴空是这样的好,颜色是很贵族气的灰蓝,温润又傲慢,空间却有着童话一般的神秘高远和无尽辽阔,万里无云又似一个能干俏女人晾晒出来的洁白床单,有说不出的洗练与明亮。好东西往往就是有气魄,就是要这样地打动人心。我心一动,便有了心得:世界上最重要的还是人!我得先于一切地承认:人的观念、喜好、志趣与理想都是没有通约性的!

比如我不看电视,可我不能否定电视,因我的父母就看。我受不了商家大放流行歌曲,可许多顾客就是被这“热闹”吸引过来的。我厌恶打麻将,我的亲朋好友大多喜欢麻将。这就是说,观念的不同并非恶,价值的不同也并非恶,个人本性的不同更不是恶。因此,我何以动辄“疾恶如仇”呢?

别的艺术家追求什么理想或者什么名利,其作品使用什么形式,在我这里,可以不喜欢,可以进行学术评品,也可以置之不理掉头走开。但是,我应该怀有善意的尊重。不是说一定要尊重我不喜欢的作品与做派,而是尊重人,尊重人的选择的权力,尊重人类的通约性。我以为,这才是知春的了。那一种光明,简单,敦厚与宁静的境界,在现实生活里,大约就是要修养出一种善意的豁达与宽容来吧。

修养善意的豁达与宽容,这么简单的一句话,以我愚钝的资质,悟也用了十余年,想要修养成为人生的态度,还不知道需要经历多少年煎熬了。还敢比法海呢,充其量也就是一个善男子善女人罢了。

原来,人生的春是这样的难得啊。

未完……如果你还没读过瘾,那么这里来:

《熬至滴水成珠》点击阅读:在线txt版 新浪书库 去豆瓣参与讨论》》

看看当当是否热卖》》