`

许愿墙的实现

    博客分类:
  • .NET
阅读更多

 看到有的应用是网上的许愿墙,就是用户写些祝福,然后象小纸条那样,粘贴在网上,好多人都写
都叠在一起了,用户可以关闭每个小纸条,可以移动.实现起来其实就是javascript
 首先是把用户填写的留言都保存到数据库,然后其实就是在一个HTML页面中,
用一个字符串很长的,把内容输出,即

/// 祝福板的坐标的随机生成器
 /// </summary>
 private Random indexRandom = new Random();
 /// <summary>
 /// 保存页面输出的内容
 /// </summary>
 protected string AllBlessString = string.Empty;

    protected void Page_Load(object sender, EventArgs e)
    {
  if(!Page.IsPostBack)
  {
   BindPageData();
  }
    }

 private void BindPageData()
 {   ///获取祝福信息
  BlessWall bless = new BlessWall();
  DataSet ds = bless.GetBlesses();
  if(ds == null || ds.Tables.Count <= 0 || ds.Tables[0].Rows.Count <= 0) return;

  StringBuilder sbBless;
  StringBuilder sbAllBless = new StringBuilder();
  int lefIndex;
  int topIndex;
  ///显示祝福板,并显示祝福信息
  foreach(DataRow row in ds.Tables[0].Rows)
  {   ///产生位置的随机起始位置
   lefIndex = indexRandom.Next(30,750);
   topIndex = indexRandom.Next(30,420);

   sbBless = new StringBuilder();
   ///构建一个<div></div>,用来显示祝福板
   sbBless.Append("<div id=\"divBless" + row["ID"].ToString() + "\" class=\"BlessPanel\" ");
   ///添加样式
   sbBless.Append("style=\"position:absolute;");
   sbBless.Append("left:" + lefIndex + "px;");
   sbBless.Append("top:" + topIndex + "px;");
   sbBless.Append("background-color:" + row["BackColor"].ToString() + ";");
   sbBless.Append("z-index:" + row["ID"].ToString() + ";\" ");
   ///添加鼠标事件
   sbBless.Append("onmousedown=\"getPanelFocus(this)\">");
   ///添加表格
   sbBless.Append("<table border=\"0\">");
   sbBless.Append("<td style=\"cursor:move;\" width=\"98%\" ");
   ///添加鼠标事件
   sbBless.Append("onmousedown=Down(divBless" + row["ID"].ToString() + ")>");
   sbBless.Append("第[" + row["ShowOrder"].ToString() + "]条&nbsp;");
   sbBless.Append(row["CreateDate"].ToString() + "&nbsp;" + "</td><td style=\"cursor:hand;\" ");
   sbBless.Append("onclick=\"ssdel()\" width=\"2%\">×</td></tr>");
   sbBless.Append("<tr><td style=\"height:100px;padding:5px;\" colspan=\"2\">");
   sbBless.Append(row["Bless"].ToString());
   ///添加用户名称
   sbBless.Append("<div style=\"padding:5px;float:right;\">" + row["Username"].ToString() + "</div></td></tr></table>");
   sbBless.Append("</div>");
   ///追加到输出字符串中
   sbAllBless.Append(sbBless.ToString());
  }
  ///将当前祝福板的内容添加到输出字符串中
  AllBlessString += sbAllBless.ToString();
 }

关键就是每个小纸条DIV的设计
接着就是用javasrcipt实现每个小纸条的移动和关闭
 <script language="javascript" type="text/javascript">
 //-- 控制层删除 -->
 function ssdel()
 {
  if(event)
  {
   lObj = event.srcElement;
   while (lObj && lObj.tagName != "DIV") lObj = lObj.parentElement ;
  }
  var id = lObj.id
  document.getElementById(id).removeNode(true);  
 }
 //-- 控制层删除 -->
 
 //-- 控制层移动 --> 
 var Obj=''
 var index=10000;   //z-index的值;
 document.onmouseup=Up;
 document.onmousemove=Move;
 function Down(Object)
 {
  Obj = Object.id;
  document.all(Obj).setCapture();
  pX = event.x - document.all(Obj).style.pixelLeft;
  pY = event.y - document.all(Obj).style.pixelTop;
 }
 function Move()
 {
  if(Obj != '')
  {
   document.all(Obj).style.left = event.x - pX;
   document.all(Obj).style.top = event.y - pY;
  }
 }
 //-- 控制层移动 -->
 function Up()
 {
  if(Obj != '')
  {
   document.all(Obj).releaseCapture();
   Obj='';
  }
 } 
 ///获取祝福板的焦点;
 function getPanelFocus(obj)
 {
  if(obj.style.zIndex!=index)
  {
   index = index + 2;
   var idx = index;
   obj.style.zIndex=idx;              
  }
 } 
 </script>

分享到:
评论

相关推荐

    许愿墙java 源码

    java+ajax 许愿墙 实现代码 没办法上传它让我说20个字我只能说点别的了

    .net+jquery实现的许愿墙

    .net+jquery实现的许愿墙。能够实现动态的层。实现层的拖动和隐藏

    照片墙,图片许愿墙 jquery实现 可来回拖动

    jquery实现照片墙,可来回拖动,效果很不错 图片许愿墙效果

    许愿墙代码实现报告

    适合初学PHP的同学进行学习,里面有一些核心的代码可以供同学们使用。

    Ajax功能 实现许愿墙 —— wish

    Ajax功能 实现许愿墙 —— wish Ajax功能 实现许愿墙 —— wish

    js 实现许愿墙代码

    通过div+js 实现了类似许愿墙样式的图片效果,单机图片显示更具体的详情

    许愿墙效果示例源码2012720

    许愿墙效果示例源码 项目描述 开发环境:vs2008+access asp.net仿qq许愿墙 从access数据库中获取数据,把许的愿望已层的形式展示出来 多了之后会出现折叠,拖动效果。 欢迎感兴趣的用户下载学习

    JS+DIV实现许愿墙

    简单的许愿墙效果。经测试可用。

    一个用AJAX做的许愿墙

    一个基于AJAX技术所做的许愿墙,包括PHP语言和Javascript脚本语言

    基于php实现的许愿墙

    作品使用原生php实现许愿墙,包含前台与后台两个模块,适合php初学者学习

    ajax实现许愿墙(从数据库提取)

    这是asp.net程序开发范例宝典(C#)里面的一个版块,是用ajax实现许愿墙,用来发送祝福等,许愿墙的每条愿望是从数据库中获取的。

    基于java开发的许愿墙

    jsp许愿墙 很漂亮的哦! 还有很多功能没实现 许愿墙 jsp许愿墙 漂亮的许愿墙 基于java开发的许愿墙 真的很漂亮哦

    JSP许愿墙模块

    基于JSP实现的简单的许愿墙模块,许愿墙的贴纸条可以相对灵活排列,单击许愿墙的导航栏中的“贴字条”超链接,原许愿墙中的内容将被锁定,并且变暗显示,同时显示贴字条窗口,如图1.2所示。输入愿望信息,然后单击...

    许愿墙源码2012813

    许愿墙源码 功能介绍:  ASP.NET许愿墙模块源码,基于Aap.net+Access的许愿墙程序,那些墙很漂亮, 窗口重叠在一起,可以拖动,可以关闭,可以智能显示在最前端。本程序是一个许 愿墙模块,仅展示前台“墙”的实现...

    许愿墙 struts jsp 毕业设计

    这是我做的毕业设计,很简单!但是呢?对于初学者还是从中能学东西的。因为我就是经常看别人写的源代码,看源代码是一种很好的学习方式了!! 版权归Leo所有,违者必究!!! 李耀华 2011.6.9

    "许愿墙"的实现+数据库

    在本案例中,对于许愿墙的具体需求如下。 (1)配置一个虚拟主机“www.wish.com”用于测试和运行项目; (2)通过MySQL数据库保存用户的数据; (3)提供展示愿望、发表愿望、修改愿望和删除愿望4个主要功能; ...

    许愿墙程序源代码

    许愿墙程序源代码

    小王许愿墙(仿QQ爱墙) 1.6.rar

    小王许愿墙(仿QQ爱墙)是爱墙网原创开发的简洁、安全、稳定、高效的ASP祝福墙(许愿墙)程序。 小王许愿墙(仿QQ爱墙) 1.6 更新内容: 采用"DIV CSS"网页标准构建,代码十分简洁; 更新整个页面使其更加酷炫; ...

    php + thinkphp框架 许愿墙

    使用的是thinkphp框架,来实现许愿墙功能。

    PHP+jQuery+Ajax漂亮的许愿墙效果

    PHP+jQuery+Ajax漂亮的许愿墙效果

Global site tag (gtag.js) - Google Analytics