浮动QQ咨询

来源:互联网 发布:nginx 会话保持 编辑:程序博客网 时间:2024/04/29 04:19

最近在做一个浮动的QQ咨询的程序,没有思路,在网上找了好久,终于找到了一个例子。

代码如下:

一、JavaScript文件(存放在JavaScripts文件夹下):

var delta = 0.15
var collection;
function floaters() {
    this.items = [];
    this.addItem = function(id, x, y, content) {
    document.write('<div id=' + id + ' style="z-index: 10; position: absolute; width:80px; height:30px; left:' + (typeof (x) == 'string' ? eval(x) : x) + '; top:' + (typeof (y) == 'string' ? eval(y) : y) + '">' + content + '</div>');

        var newItem = {};
        newItem.object = document.getElementById(id);
        newItem.x = x;
        newItem.y = y;

        this.items[this.items.length] = newItem;
    }
    this.play = function() {
        collection = this.items
        setInterval('play()', 10);
    }
}

function play() {
    if (screen.width <= 800) {
        for (var j = 0; j < collection.length; j++) {
            collection[j].object.style.display = 'none';
        }
        return;
    }
    for (var i = 0; i < collection.length; i++) {
        var followObj = collection[i].object;
        var followObj_x = (typeof (collection[i].x) == 'string' ? eval(collection[i].x) : collection[i].x);
        var followObj_y = (typeof (collection[i].y) == 'string' ? eval(collection[i].y) : collection[i].y);

        if (followObj.offsetLeft != (document.body.scrollLeft + followObj_x)) {
            var dx = (document.body.scrollLeft + followObj_x - followObj.offsetLeft) * delta;
            dx = (dx > 0 ? 1 : -1) * Math.ceil(Math.abs(dx));
            followObj.style.left = followObj.offsetLeft + dx;
        }

        if (followObj.offsetTop != (document.body.scrollTop + followObj_y)) {
            var dy = (document.body.scrollTop + followObj_y - followObj.offsetTop) * delta;
            dy = (dy > 0 ? 1 : -1) * Math.ceil(Math.abs(dy));
            followObj.style.top = followObj.offsetTop + dy;
        }
        followObj.style.display = '';
    }
}
var theFloaters = new floaters();
theFloaters.addItem('followDiv1', 400, 80, '<a href="#" target="_blank"> <a target="_blank" href="tencent://message/?uin=111111&Site=keyboli&Menu=yes"><img border="0" SRC="http://wpa.qq.com/pa?p=1:111111:4" alt="Q我吧"></a>顾问1<br /><br /><a target="_blank" href="tencent://message/?uin=222222&Site=keyboli&Menu=yes"><img border="0" SRC="http://wpa.qq.com/pa?p=1:222222:4" alt="Q我吧"></a>顾问3<br /><br /><a target="_blank" href="tencent://message/?uin=333333&Site=keyboli&Menu=yes"><img border="0" SRC="http://wpa.qq.com/pa?p=1:333333:4" alt="Q我吧"></a>顾问5');
theFloaters.addItem('followDiv2', 'document.body.clientWidth-480', 80, '<a href="#" target="_blank"> <a target="_blank" href="tencent://message/?uin=444444&Site=keyboli&Menu=yes"><img border="0" SRC="http://wpa.qq.com/pa?p=1:444444:4" alt="Q我吧"></a>顾问2<br /><br /><a target="_blank" href="tencent://message/?uin=555555&Site=keyboli&Menu=yes"><img border="0" SRC="http://wpa.qq.com/pa?p=1:555555:4" alt="Q我吧"></a>顾问4<br /><br /><a target="_blank" href="tencent://message/?uin=666666&Site=keyboli&Menu=yes"><img border="0" SRC="http://wpa.qq.com/pa?p=1:666666:4" alt="Q我吧"></a>顾问6');
theFloaters.play();

 

二、前台页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="QQMessage.aspx.cs" Inherits="ADTestProgram.QQMessage" %>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <script language="javascript" type="text/javascript" src="../JavaScripts/QQ.js">   
        </script>
    </div>
    </form>
</body>
</html>

注意:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">这段代码是一定要取消的,否则不能随页面滚动。

 

以下是我写的修改咨询QQ号码的程序。

一、前台页面:

<table style="font-family: 宋体; font-size: 10pt; background-color: #F4F4F4;">
    <tr>
        <td align="right">
            QQ号:
        </td>
        <td align="left">
            <asp:TextBox ID="txtQQ1" runat="server"></asp:TextBox>
            <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server"
                ControlToValidate="txtQQ1" ErrorMessage="QQ号只能是数字!" Display="Dynamic"
                ValidationExpression="^[0-9]*$"></asp:RegularExpressionValidator>
        </td>
        <td align="right">
            QQ号:
        </td>
        <td align="left">
            <asp:TextBox ID="txtQQ2" runat="server"></asp:TextBox>
            <asp:RegularExpressionValidator ID="RegularExpressionValidator2" runat="server"
                ControlToValidate="txtQQ2" ErrorMessage="QQ号只能是数字!" Display="Dynamic"
                ValidationExpression="^[0-9]*$"></asp:RegularExpressionValidator>
        </td>
        <td align="right">
            QQ号:
        </td>
        <td align="left">
            <asp:TextBox ID="txtQQ3" runat="server"></asp:TextBox>
            <asp:RegularExpressionValidator ID="RegularExpressionValidator3" runat="server"
                ControlToValidate="txtQQ3" ErrorMessage="QQ号只能是数字!" Display="Dynamic"
                ValidationExpression="^[0-9]*$"></asp:RegularExpressionValidator>
        </td>
    </tr>
    <tr>
        <td align="right">
            QQ号:
        </td>
        <td align="left">
            <asp:TextBox ID="txtQQ4" runat="server"></asp:TextBox>
            <asp:RegularExpressionValidator ID="RegularExpressionValidator4" runat="server"
                ControlToValidate="txtQQ4" ErrorMessage="QQ号只能是数字!" Display="Dynamic"
                ValidationExpression="^[0-9]*$"></asp:RegularExpressionValidator>
        </td>
        <td align="right">
            QQ号:
        </td>
        <td align="left">
            <asp:TextBox ID="txtQQ5" runat="server"></asp:TextBox>
            <asp:RegularExpressionValidator ID="RegularExpressionValidator5" runat="server"
                ControlToValidate="txtQQ5" ErrorMessage="QQ号只能是数字!" Display="Dynamic"
                ValidationExpression="^[0-9]*$"></asp:RegularExpressionValidator>
        </td>
        <td align="right">
            QQ号:
        </td>
        <td align="left">
            <asp:TextBox ID="txtQQ6" runat="server"></asp:TextBox>
            <asp:RegularExpressionValidator ID="RegularExpressionValidator6" runat="server"
                ControlToValidate="txtQQ6" ErrorMessage="QQ号只能是数字!" Display="Dynamic"
                ValidationExpression="^[0-9]*$"></asp:RegularExpressionValidator>
        </td>
    </tr>
    <tr>
        <td colspan="6">
            <asp:Button ID="btnSave" runat="server" Text="写 入" onclick="btnSave_Click" Enabled="False" />
        </td>
    </tr>
</table>

二、后台代码:

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

protected void btnSave_Click(object sender, EventArgs e)
{
    ArrayList myArrayList0 = new ArrayList();
    ArrayList myArrayList1 = new ArrayList();
    if (txtQQ1.Text.Trim().Length == 0)
    {
        myArrayList0.Add("000000");
    }
    else
    {
        myArrayList0.Add(txtQQ1.Text.Trim().ToString());
    }
    if (txtQQ2.Text.Trim().Length == 0)
    {
        myArrayList0.Add("222222");
    }
    else
    {
        myArrayList0.Add(txtQQ2.Text.Trim().ToString());
    }
    if (txtQQ3.Text.Trim().Length == 0)
    {
        myArrayList0.Add("333333");
    }
    else
    {
        myArrayList0.Add(txtQQ3.Text.Trim().ToString());
    }
    if (txtQQ4.Text.Trim().Length == 0)
    {
        myArrayList0.Add("444444");
    }
    else
    {
        myArrayList0.Add(txtQQ4.Text.Trim().ToString());
    }
    if (txtQQ5.Text.Trim().Length == 0)
    {
        myArrayList0.Add("555555");
    }
    else
    {
        myArrayList0.Add(txtQQ5.Text.Trim().ToString());
    }
    if (txtQQ6.Text.Trim().Length == 0)
    {
        myArrayList0.Add("666666");
    }
    else
    {
        myArrayList0.Add(txtQQ6.Text.Trim().ToString());
    }

    myStreamReader = new StreamReader(Server.MapPath("~/JavaScripts/QQ1.js"), Encoding.GetEncoding("GB2312"));
    while (myStreamReader.Peek() > 0)
    {
        string myStr1 = myStreamReader.ReadLine();
        myArrayList1.Add(myStr1);
    }
    myStreamReader.Close();

    myStreamWriter = new StreamWriter(Server.MapPath("~/JavaScripts/QQ1.js"), false, Encoding.GetEncoding("GB2312"));
    for (int i = 0; i < myArrayList1.Count; i++)
    {
        string myStrShuZu=myArrayList1[i].ToString();
        for (int j = 0; j < myArrayList0.Count; j++)
        {
            myStrShuZu = myStrShuZu.Replace(Model.Variable.myArrayList[j].ToString(), myArrayList0[j].ToString());
        }
        myStreamWriter.WriteLine(myStrShuZu);
    }
    myStreamWriter.Flush();
    myStreamWriter.Close();
}

#region 查找JavaScript文件中的QQ号码,方法名:ReadJavaScript()
protected void ReadJavaScript()
{
    Model.Variable.myArrayList = new ArrayList();
    ArrayList myArrayList = new ArrayList();
    myStreamReader = new StreamReader(Server.MapPath("~/JavaScripts/QQ1.js"), Encoding.GetEncoding("GB2312"));
    string myStr = "";
    while (myStreamReader.Peek() > 0)
    {
        string myStr1 = myStreamReader.ReadLine();
        string myStr2 = "", myStr3 = "", myStr4 = "";
        int aaa = myStr1.IndexOf("uin") + 4;
        int bbb = myStr1.IndexOf("Site") - 1;
        if (aaa > 0 && bbb > 0 && bbb > aaa)
        {
            myStr2 = myStr1.Substring(aaa, bbb - aaa).ToString();
            myStr1 = myStr1.Substring(myStr1.IndexOf("Site") + 4, myStr1.Length - myStr1.IndexOf("Site") - 4).ToString();
            int ccc = myStr1.IndexOf("uin") + 4;
            int ddd = myStr1.IndexOf("Site") - 1;
            if (ddd > 0 && ccc > 0 && ddd > ccc)
            {
                myStr3 = myStr1.Substring(ccc, ddd - ccc).ToString();
                myStr1 = myStr1.Substring(myStr1.IndexOf("Site") + 4, myStr1.Length - myStr1.IndexOf("Site") - 4).ToString();
                int eee = myStr1.IndexOf("uin") + 4;
                int fff = myStr1.IndexOf("Site") - 1;
                if (fff > 0 && eee > 0 && fff > eee)
                {
                    myStr4 = myStr1.Substring(eee, fff - eee).ToString();
                }
            }
            myStr += myStr2 + "," + myStr3 + "," + myStr4 + ",";
            myArrayList.Add(myStr2);
            myArrayList.Add(myStr3);
            myArrayList.Add(myStr4);
            Model.Variable.myArrayList.Add(myStr2);
            Model.Variable.myArrayList.Add(myStr3);
            Model.Variable.myArrayList.Add(myStr4);
        }
    }
    myStreamReader.Close();
    txtQQ1.Text = Model.Variable.myArrayList[0].ToString();
    txtQQ2.Text = Model.Variable.myArrayList[1].ToString();
    txtQQ3.Text = Model.Variable.myArrayList[2].ToString();
    txtQQ4.Text = Model.Variable.myArrayList[3].ToString();
    txtQQ5.Text = Model.Variable.myArrayList[4].ToString();
    txtQQ6.Text = Model.Variable.myArrayList[5].ToString();
}
#endregion

我也感觉这样很繁琐,可是刚学B/S开发不久,不知道该怎么做才好,只好这样了。我是个新手,如果大家有更好的解决办法,希望大家不吝指教,在此先谢谢了。