IT技术江湖   操作系统   安全技术   平面设计   Web开发   数据库   互联网   搜索引擎   网络广告   
引擎技术江湖  BLOG  合作联系
本站
Google
IT技术江湖
首页>Web开发>JavaScript特效> 用JavaScript/JS制作仿“QQ秀”的虚拟形象
  • IT技术江湖
  • 用JavaScript/JS制作仿“QQ秀”的虚拟形象
    http://www.hack1st.com 来源: 2008-03-22 阅读: 评论

      不知大家有没有玩过“QQ秀”?玩过的话一定会想自己也做一个类似的功能。不过没有玩过也没关系,你可以看看下面的演示。用户可以在列出的图片中自由定制自己的形象,用在论坛社区、留言本等地方的形象显示可是个不错的主意哦!怎么样?心动了吧?那让我们看看这东西到底是怎么回事吧!

      实际上,左边“形象预览”的形象是由多幅图片一层一层拼成的,呵呵,了解Photoshop的层技术就很容易理解了。每层图片的大小一样,必要显示的地方都调整在特定范围,其他地方都是透明的。在换形象时,只要把相应层的图片替换掉就可以了。不难理解,演示中只有20幅用于拼凑形象的图片(原始的形象有4幅),却可以拼出54=625个形象!

      我们用一个特定格式的字符串来记录用户的形象配置,也是根据该字符串来显示虚拟形象,该字符串暂且称为配置码。存取形象时,就存取该配置码即可。因为这十分简单,所以这里不讨论服务器端语言的操作。配置码的格式举个例子就容易明白,例如“df>2>1>0”表示第一层图片名为“df.gif”,第二层名为“2.gif”,第三层名为“1.gif”,没有第四层。所以不要给图片起名为“0.gif”。

      下面我们看看虚拟形象具体是如何实现的。演示中用了四层拼凑一个形象(其际上您可以用更用层):第一层裤子,第二层上衣,第三层发型,第四层帽子。各层供选图片都放在各自的目录中,目录名分别为1、、2、3、4,即和层数相同。另外列表中的图片和拼凑形象的图片不相同,列表中的只是缩略图。大图“1.gif”对应的缩略图是“1x.gif”,依此类推。另外每个目录都有一个图片“df.gif”,是该层的默认原始图片。

      照此这安置好图片后,开始编写代码,为了便于理解,以下代码的顺序并不完全按照演示中的顺序:

    <!-- 在要显示形象预览的地方放置以下这句代码 -->
    <div id="bodyshow" style="border:1px solid #000000;padding:0;POSITION: relative; Left: 0px; TOP: 0px; HEIGHT: 226px; WIDTH: 140px;"></div> <!-- 这是提交表单,把代表用户形象的字符串赋到隐藏域 userequip 提交 -->
    <form name="equipform" method="post" action="">
    <input name="userequip" type="hidden" value="">
    <input name="saveequip" type="submit" value="保存形象" >
    <input name="toreequip" type="button" value="原始形象" onclick="shoiwit('df>df>df>0');return false;" >
    </form>
    <script language="JavaScript">
    <!--
    var myequip="df>df>df>0"; //最初显示的配置码,可由服务器读取并输出。
    function shoiwit(equip){ //这个函数由配置码为参数,显示虚拟形象
    showlayers=equip.split('>'); //以“>”为分隔符,分配各层图片名到一个数组 showlayers[]
    str="";
    for(i=0;i<showlayers.length;i++){
    if(showlayers[i]!='0'&&showlayers[i]!=''){ //如果图片名为0或空值则该层不显示。
    str+="<img src='equipment/"+(i+1)+"/"+showlayers[i]+".gif' style='padding:0;position:absolute;top:0;left:0;width:140;height:226;z-index:"+(i+1)+";'>";
    }
    }
    //最后在最上一层覆盖一幅完全透明的图片,这样用户在上面右链>另存为也只能保存这幅图了:
    str+="<img src='equipment/blank.gif' style='padding:0;position:absolute;top:0;left:0;width:140;height:226;z-index:100;'>";
    if(equipform.userequip) equipform.userequip.value=myequip=equip; //把配置码赋值到隐藏域中
    bodyshow.innerHTML=str; //显示各层图片。
    }
    //页面加载后先显示最初的虚拟形象:
    document.body.onload=new Function("shoiwit(myequip)");
    function dressit(layer,img){ //这个函数用于更换配置,参数为 层数,图片名
    showlayers=myequip.split('>');
    newequip="";
    for(i=0;i<showlayers.length;i++){
    if(i+1==layer){
    if(img==showlayers[i]) newequip+="df"; //如果该层已是这幅图片,则恢复为原始图片
    else newequip+=img; //否则换为这幅图
    }
    else newequip+=showlayers[i]; //其他层图片不变
    if(i+1!=showlayers.length) newequip+=">";
    }
    shoiwit(newequip); //显示最新配置
    }
    -->
    </script>
    <!--
    以下是供选图片列表,点击一幅图则更改相应的层的这幅图片
    注意链接路径,javascript:dressit(4,1) 表示第4层换上/脱下图片"1.gif",依此类推;
    不过要注意若要第4层换上/脱下图片“df.gif”,则应加引号,写成 javascript:dressit(4,'df')
    -->
    <table border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td width="84"><a href="javascript:dressit(4,1)"><img src="equipment/4/1x.gif" width="84" height="84" border="0"></a></td>
    <td width="84"><a href="javascript:dressit(4,2)"><img src="equipment/4/2x.gif" width="84" height="84" border="0"></a></td>

    上一页12 下一页

    上一篇:防止查看源代码的网页特效  
    下一篇:JavaScript技巧:让网页自动穿上外套

    ·网友互动--用户名: (新注册) 密码: 匿名评论 [所有评论]
    评论内容:(用户发表意见仅代表其个人意见,评论内容与本站立场无关,请自觉遵守互联网相关政策法规)
    关注此文读者还看过
    • ·用Javascript实现表格单元格背景色鼠标响应
      ·编程实例 一个简单的智能感知效果
      ·排序Select中Option项的一个示例
      ·JavaScript技巧:让网页自动穿上外套
      ·用JavaScript/JS制作仿“QQ秀”的虚拟形象
      ·防止查看源代码的网页特效
      ·循环不间断向上滚动的文本特效代码
      ·鼠标单击连接在网页中弹出个性提示小窗口
      ·Javascript强制设为首页的网页代码
      ·网页表单禁止输入某些符号的简单实现方法
    最新更新
    • ·用Javascript实现表格单元格背景色鼠标响应
      ·编程实例 一个简单的智能感知效果
      ·排序Select中Option项的一个示例
      ·JavaScript技巧:让网页自动穿上外套
      ·用JavaScript/JS制作仿“QQ秀”的虚拟形象
      ·防止查看源代码的网页特效
      ·循环不间断向上滚动的文本特效代码
      ·鼠标单击连接在网页中弹出个性提示小窗口
      ·Javascript强制设为首页的网页代码
      ·网页表单禁止输入某些符号的简单实现方法
    文章关注度排行
    ·鼠标单击连接在网页中弹出个性提示小窗口
    ·用JavaScript/JS制作仿“QQ秀”的虚拟形象
    ·特效代码:非常漂亮的鼠标提示的信息
    ·Javascript强制设为首页的网页代码
    ·排序Select中Option项的一个示例
    ·循环不间断向上滚动的文本特效代码
    ·用JavaScript刷新框架子页面的方法
    ·在IE浏览器中正确显示PNG透明图片
    热点推荐
    特效代码:非常漂亮的鼠标提示的信息
    特效代码:非常漂亮的鼠
    距离北京2008年奥运会开幕的倒记时特效
    距离北京2008年奥运会开
    频道推荐
    • ·鼠标单击连接在网页中弹出个性提示小窗口
    • ·特效代码:非常漂亮的鼠标提示的信息
    • ·Javascript强制设为首页的网页代码
    • ·循环不间断向上滚动的文本特效代码
    • ·网页表单禁止输入某些符号的简单实现方法
    • ·防止查看源代码的网页特效
    • ·距离北京2008年奥运会开幕的倒记时特效
    • ·推荐几个入门级的JS特效代码
    本站精华
    特效代码:非常漂亮的鼠标提示的信息
    特效代码:非
    距离北京2008年奥运会开幕的倒记时特效
    距离北京2008
    • ·防止查看源代码的网页特效
    • ·循环不间断向上滚动的文本特效
    • ·鼠标单击连接在网页中弹出个性
    • ·Javascript强制设为首页的网页
    • ·网页表单禁止输入某些符号的简
    • ·距离北京2008年奥运会开幕的倒
    • | 网站导航 | 联系QQ | 编辑邮箱 | RSS订阅 | 友情链接 | 官方blog
    • 版权所有:IT技术江湖 @2007-2008
    • powered by www.hack1st.com online services. all rights reserved.京ICP备07005766号