模仿QQ弹出窗口的源代码(推荐)

本文介绍了一种使用HTML和JavaScript实现的动态弹窗消息框技术。该消息框能够自动出现在页面角落,并随着用户滚动逐渐进入视线范围。文章提供了完整的代码示例,包括如何设置消息框的位置以及如何通过定时器控制其行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<html>
 <!--把下列代码加到head区域内-->
 <head>
  <SCRIPT language=javascript>
   //more javascript from http://www.webjx.com
   window.onload = enetgetMsg;
   window.onresize = enetresizeDiv;
   window.onerror = function(){
    
   }
   
   var enetdivTop,enetdivLeft,enetdivWidth,enetdivHeight,enetdocHeight,enetdocWidth,enetobjTimer,i = 0;
   
   function enetgetMsg(){
    try{
     enetdivTop = parseInt(document.getElementById("enetMeng").style.top,10);
     enetdivLeft = parseInt(document.getElementById("enetMeng").style.left,10);
     enetdivHeight = parseInt(document.getElementById("enetMeng").offsetHeight,10);
     enetdivWidth = parseInt(document.getElementById("enetMeng").offsetWidth,10);
     enetdocWidth = document.body.clientWidth;
     enetdocHeight = document.body.clientHeight;
     // enetdivHeight
     document.getElementById("enetMeng").style.top = parseInt(document.body.scrollTop,10) + enetdocHeight + 10;
     document.getElementById("enetMeng").style.left =
            parseInt(document.body.scrollLeft,10) + enetdocWidth - enetdivWidth;
     document.getElementById("enetMeng").style.visibility="visible";
     enetobjTimer = window.setInterval("enetmoveDiv()",10);
    }
    catch(e){
    }
   }
    
   function enetresizeDiv(){
    i+=1;
    if(i>600){
     enetcloseDiv()
    }
    try{
     enetdivHeight = parseInt(document.getElementById("enetMeng").offsetHeight,10);
     enetdivWidth = parseInt(document.getElementById("enetMeng").offsetWidth,10);
     enetdocWidth = document.body.clientWidth;
     enetdocHeight = document.body.clientHeight;
     document.getElementById("enetMeng").style.top =
           enetdocHeight - enetdivHeight + parseInt(document.body.scrollTop,10);
     document.getElementById("enetMeng").style.left =
           enetdocWidth - enetdivWidth + parseInt(document.body.scrollLeft,10);
    }
    catch(e){
    }
   }
   
   function enetmoveDiv(){
    try{
     if(parseInt(document.getElementById("enetMeng").style.top,10) <=
         (enetdocHeight - enetdivHeight + parseInt(document.body.scrollTop,10))){
      window.clearInterval(enetobjTimer);
      enetobjTimer = window.setInterval("enetresizeDiv()",1);
     }
     enetdivTop = parseInt(document.getElementById("enetMeng").style.top,10);
     document.getElementById("enetMeng").style.top = enetdivTop - 1;
    }
    catch(e){
    }
   }
   
   function enetcloseDiv(){
    document.getElementById('enetMeng').style.visibility='hidden';
    if(enetobjTimer){
     window.clearInterval(enetobjTimer);
    }
   }
  </SCRIPT>
 </head>
 
 <body>
  <!--把下列代码加到BODY区域内-->
  <DIV  id=enetMeng
     style="BORDER-RIGHT: #455690 1px solid; BORDER-TOP: #a6b4cf 1px solid;
      Z-INDEX: 99999; LEFT: 0px; VISIBILITY: visible; BORDER-LEFT: #a6b4cf 1px solid;
      WIDTH: 241px; BORDER-BOTTOM: #455690 1px solid; POSITION: absolute; TOP: -200px; HEIGHT: 157px">
   <TABLE WIDTH=255 BORDER=0 CELLPADDING=0 CELLSPACING=0 bgcolor="#DAE6FC">
    <TR>    
     <TD height="30" valign="top" background="qqimages/heihei_1.jpg">
      <table width="255" height="19" border="0" cellpadding="0" cellspacing="0">
       <tr>
        <td width="212" valign="bottom">
         <strong><font color="#FF6600" size="2">消息框</font></strong>
        </td>
        <td width="10" style="cursor:hand" onClick="enetcloseDiv()">
         close
        </td>
       </tr>
      </table>
     </TD>
    </TR>
    <TR>
     <TD height="122" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="1">
      <table align="center" width="98%">
       <tr>
        <td>
         欢迎你来到网页教学网 http://www.webjx.com
        </td>
       </tr>
      </table>
     </TD>
    </TR>
   </TABLE>
  </DIV>
 </body>
</html> 
import java.awt.*; import java.awt.event.*; import java.applet.*; import javax.swing.ImageIcon; import javax.swing.*; import java.lang.*; import java.sql.*; class Imagecanvas extends Canvas { Toolkit tool; Image Im; Imagecanvas() { setSize(360, 50); tool = getToolkit(); Im = tool.getImage("dj.jpg"); } public void paint(Graphics g) { g.drawImage(Im, 0, 0, 360, 50, this); } } class QqBorder1 extends JFrame implements ActionListener { Choice cho; QqBorder1() { super("QQ2010"); setSize(360, 260); setLocation(250, 120); setResizable(false); Container c = getContentPane(); FlowLayout layout = new FlowLayout(FlowLayout.CENTER); JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JPanel p3 = new JPanel(); cho = new Choice(); cho.add("在线"); cho.add("隐身"); cho.add("离线"); cho.add("忙碌"); cho.add("请勿打扰"); Imagecanvas canvas1 = new Imagecanvas(); p1.setSize(360, 50); p1.add(canvas1); TextField username = new TextField(25); TextField password = new TextField(25); password.setEchoChar('*'); JButton btrystu = new JButton("登陆"); JButton sezhi = new JButton("设置"); JCheckBox check1 = new JCheckBox("记住密码"); JCheckBox check2 = new JCheckBox("自动登陆"); // p1.setSize(360, 200); JPanel p21 = new JPanel(); JPanel p22 = new JPanel(); p21.add(new JLabel("账号:")); p21.add(username); p21.add(new JLabel("<html><font color=blue>注册新账号</font></html>")); // p21.add(new JLabel(" ")); p21.add(new JLabel("密码:")); p21.add(password); p21.add(new JLabel("<html><font color=blue> 找 回 密 码 </font></html>")); p22.add(new JLabel("状态:")); p22.add(new JLabel(" ")); p22.add(cho); p22.add(check1); p22.add(check2); p22.add(new JLabel(" ")); p2.add(p21); p2.add(p22); p2.setBounds(100, 300, 200, 300); p2.setLayout(new GridLayout(2, 1, 10, 10)); p3.add(sezhi); p3.add(new JLabel(" ")); p3.add(btrystu); add(BorderLayout.NORTH, p1); add(BorderLayout.CENTER, p2); add(BorderLayout.SOUTH, p3); this.setVisible(true); } public void actionPerformed(ActionEvent e) { } } public class QqBorder { }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值