javascript入门实例:实现简单网页功能

这两天做了一个简单的小网页,由于是初次接触HTML5和CSS,只实现了最基本的功能,后续会再对功能样式进行填充优化,这里记录一下。
实现效果:可通过切换上面的导航栏实现左侧导航栏的切换,并通过左侧导航栏的切换实现右侧具体导航内容的展示。
在这里插入图片描述
代码如下:

<!DOCTYPE html>
<html lang="ch">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
  /*<!--横向导航栏的宽度、高度和整体样式-->*/
  #TopNav {
    height: 40px;
    background: #b3d4fc;
    border-radius: 5px;
    padding-left: 300px;
  }
  /*<!--导航各个栏目的宽度、高度和对齐方式-->*/
  #TopNav ul li {
    list-style-type: none;
    width: 110px;
    height: 40px;
    float: left;
    text-align: left;
    line-height: 40px;
  }
  /*<!--导航选项不显示下划线-->*/
  #TopNav ul li a{
    text-decoration: none;
  }
  /*<!--左侧导航栏样式-->*/
  #sidebar_left {
    background: #cccccc;
    padding: 10px;
    height: 500px;
    width: 150px;
  }
  /*<!--左侧导航栏导航项样式-->*/
  #sidebar_left nav ul li {
    list-style-type: none;
    width: 90px;
    font-size: 20px;
    padding-top: 15px;
  }
  /*<!--导航选项不显示下划线-->*/
  #sidebar_left ul li a{
    text-decoration: none;
  }
  #sidebar_right {
    width:350px;
    float:left;
    padding:10px;
    margin-left: 190px;
    margin-top: 60px;
    font-size: 20px;
    align-content: center;
  }
  /*<!--页脚样式-->*/
  #footer {
    background-color:#b3d4fc;
    color:white;
    clear:both;
    text-align:center;
    border-radius: 5px;
    padding:5px;
  }
</style>
<body>
  <div id="TopNav">
    <nav>
      <ul>
        <li><a href="#/DefaultPage">首页</a></li>
        <li><a href="#/SendInfo">信息发布</a></li>
        <li><a href="#/Club">俱乐部</a></li>
        <li><a href="#/Appraisal">民主测评</a></li>
      </ul>
    </nav>
  </div>

  <div id="SendInfo" style="display: none">
    <nav>
      <ul>
        <li><a href="#/ActivityDynamic">活动动态</a></li>
        <li><a href="#/EmployeeBenefits">职工福利</a></li>
      </ul>
    </nav>
  </div>
  <div id="Club" style="display:none">
    <nav>
      <ul>
        <li><a href="#/FootBall">足球</a></li>
        <li><a href="#/BasketBall">篮球</a></li>
        <li><a href="#/Badminton">羽毛球</a></li>
        <li><a href="#/Yoga">瑜伽</a></li>
      </ul>
    </nav>
  </div>
  <div id="Appraisal" style="display:none">
    <nav>
      <ul>
        <li><a href="#/Suggestions">合理建议</a></li>
        <li><a href="#/Questionnaire">调查问卷</a></li>
      </ul>
    </nav>
  </div>

  <div id="sidebar_right">
    <p>PostManagementSystem</p>
  </div>

  <div id="sidebar_left">
    <nav>
      <ul>
        <li><a href="#/ActivityDynamic">活动动态</a></li>
        <li><a href="#/EmployeeBenefits">职工福利</a></li>
      </ul>
    </nav>
  </div>

  <div id="ActivityDynamics" style="display: none">
    <p>This is Activity Dynamics!</p>
  </div>
  <div id="Employeebenefits" style="display: none">
    <p>This is Employee benefits!</p>
  </div>
  <div id="FootBall" style="display: none">
    <p>This is Football!</p>
  </div>
  <div id="BasketBall" style="display: none">
    <p>This is BasketBall!</p>
  </div>
  <div id="Badminton" style="display: none">
    <p>This is Badminton!</p>
  </div>
  <div id="Yoga" style="display: none">
    <p>This is Yoga!</p>
  </div>
  <div id="Suggestions" style="display: none">
    <p>This is Suggestions!</p>
  </div>
  <div id="Questionnaire" style="display: none">
    <p>This is Questionnaire!</p>
  </div>

  <div id="footer">
    Copyright www.bbcc.cn
  </div>
</body>
<script>
  (function(){
    var Router = function () {
      this.routes = {};//保存路由
      this.curUrl = '';//获取当前的hash值
    }
    Router.prototype.init = function () {
      //hashchange事件,当hash变化时,调用reloadPage方法
      //第一个this指向window,bind里面的this指向调用这个函数的对象,具体使用方法可以百度
      window.addEventListener('hashchange', this.reloadPage.bind(this));
    }

    Router.prototype.reloadPage = function () {
      this.curUrl = location.hash.substring(1) || '/';//获取当前hash的值(去掉#)
      this.routes[this.curUrl]();      //运行当前hsah值对应的函数
    }

    Router.prototype.map = function( key, callback ){ //保存路由对应的函数:
      this.routes[key] = callback;  //key表示hash的值(去掉#),callback表示当前hash对应的函数
    }
    window.oRou = Router;
  })

  (function(){
    var Router = function () {
      this.routes = {};//保存路由
      this.curUrl = '';//获取当前的hash值
    }
    Router.prototype.init = function () {
      //hashchange事件,当hash变化时,调用reloadPage方法
      //第一个this指向window,bind里面的this指向调用这个函数的对象,具体使用方法可以百度
      window.addEventListener('hashchange', this.reloadPage.bind(this));
    }

    Router.prototype.reloadPage = function () {
      this.curUrl = location.hash.substring(1) || '/';//获取当前hash的值(去掉#)
      this.routes[this.curUrl]();      //运行当前hsah值对应的函数
    }

    Router.prototype.map = function( key, callback ){ //保存路由对应的函数:
      this.routes[key] = callback;  //key表示hash的值(去掉#),callback表示当前hash对应的函数
    }
    window.oRou = Router;
  })

  var oRouter2 = new oRou();
  oRouter2.init();
  oRouter2.map('/DefaultPage',function () {
    var leftNav = document.getElementById("sidebar_left");
    var sendInfoControl = document.getElementById("SendInfo").innerHTML;
    leftNav.innerHTML = sendInfoControl;
  })

  oRouter2.map('/SendInfo',function () {
    var leftNav = document.getElementById("sidebar_left");
    var sendInfoControl = document.getElementById("SendInfo").innerHTML;
    leftNav.innerHTML = sendInfoControl;

    var rightNav = document.getElementById("sidebar_right");
    var ActivityDynamicControl = document.getElementById("ActivityDynamics").innerHTML;
    rightNav.innerHTML = ActivityDynamicControl;
  })

  oRouter2.map('/Club',function () {
    var leftNav = document.getElementById("sidebar_left");
    var clubControl = document.getElementById("Club").innerHTML;
    leftNav.innerHTML = clubControl;

    var rightNav = document.getElementById("sidebar_right");
    var footBallControl = document.getElementById("FootBall").innerHTML;
    rightNav.innerHTML = footBallControl;
  })

  oRouter2.map('/Appraisal',function () {
    var leftNav = document.getElementById("sidebar_left");
    var appraisalControl = document.getElementById("Appraisal").innerHTML;
    leftNav.innerHTML = appraisalControl;

    var rightNav = document.getElementById("sidebar_right");
    var suggestionsControl = document.getElementById("Suggestions").innerHTML;
    rightNav.innerHTML = suggestionsControl;
  })

  oRouter2.map('/ActivityDynamic',function () {
    var rightNav = document.getElementById("sidebar_right");
    var ActivityDynamicControl = document.getElementById("ActivityDynamics").innerHTML;
    rightNav.innerHTML = ActivityDynamicControl;
  })

  oRouter2.map('/EmployeeBenefits',function () {
    var rightNav = document.getElementById("sidebar_right");
    var employeeBenefitsControl = document.getElementById("Employeebenefits").innerHTML;
    rightNav.innerHTML = employeeBenefitsControl;
  })

  oRouter2.map('/FootBall',function () {
    var rightNav = document.getElementById("sidebar_right");
    var footBallControl = document.getElementById("FootBall").innerHTML;
    rightNav.innerHTML = footBallControl;
  })

  oRouter2.map('/BasketBall',function () {
    var rightNav = document.getElementById("sidebar_right");
    var basketBallControl = document.getElementById("BasketBall").innerHTML;
    rightNav.innerHTML = basketBallControl;
  })

  oRouter2.map('/Badminton',function () {
    var rightNav = document.getElementById("sidebar_right");
    var badmintonControl = document.getElementById("Badminton").innerHTML;
    rightNav.innerHTML = badmintonControl;
  })

  oRouter2.map('/Yoga',function () {
    var rightNav = document.getElementById("sidebar_right");
    var yogaControl = document.getElementById("Yoga").innerHTML;
    rightNav.innerHTML = yogaControl;
  })

  oRouter2.map('/Suggestions',function () {
    var rightNav = document.getElementById("sidebar_right");
    var SuggestionsControl = document.getElementById("Suggestions").innerHTML;
    rightNav.innerHTML = SuggestionsControl;
  })

  oRouter2.map('/Questionnaire',function () {
    var rightNav = document.getElementById("sidebar_right");
    var QuestionnaireControl = document.getElementById("Questionnaire").innerHTML;
    rightNav.innerHTML = QuestionnaireControl;
  })
</script>
</html>
  • 5
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
好的,下面是关于WebSocket实例简单多人聊天室的教程: 在这个例子中,我们将创建一个简单的多人聊天室,用户可以在其中发送消息,同时所有连接到聊天室的用户都将看到这些消息。 1. 首先,我们需要一个HTML页面,用于显示聊天室的界面。创建一个新文件`index.html`,并添加以下内容: ```html <!DOCTYPE html> <html> <head> <title>WebSocket Chat Room</title> </head> <body> <div id="chatBox"></div> <form> <input type="text" id="messageInput" /> <button type="submit">Send</button> </form> <script src="chat.js"></script> </body> </html> ``` 这是一个非常简单的HTML页面,其中包含一个`<div>`元素,用于显示聊天记录,以及一个`<form>`元素,用于发送新的聊天消息。我们还添加了一个JavaScript文件`chat.js`,稍后我们将在其中编写聊天室的逻辑。 2. 接下来,我们需要编写聊天室的服务器端代码。创建一个新文件`server.js`,并添加以下内容: ```javascript const WebSocket = require("ws"); const server = new WebSocket.Server({ port: 8080 }); const connections = []; server.on("connection", (socket) => { console.log("New client connected"); connections.push(socket); socket.on("message", (message) => { console.log(`Received message: ${message}`); connections.forEach((connection) => { if (connection !== socket) { connection.send(message); } }); }); socket.on("close", () => { console.log("Client disconnected"); const index = connections.indexOf(socket); if (index > -1) { connections.splice(index, 1); } }); }); ``` 这是一个非常简单的WebSocket服务器,它监听端口`8080`上的所有连接。每当有新客户端连接时,服务器都会将其添加到`connections`数组中。当服务器收到任何消息时,它将将该消息发送给所有其他连接的客户端。当客户端断开连接时,服务器将从`connections`数组中删除该客户端。 3. 最后,我们需要编写客户端代码,用于连接到聊天室并发送消息。在`chat.js`文件中添加以下内容: ```javascript const socket = new WebSocket("ws://localhost:8080"); const chatBox = document.getElementById("chatBox"); const messageInput = document.getElementById("messageInput"); socket.onmessage = (event) => { const message = event.data; const messageElement = document.createElement("div"); messageElement.innerText = message; chatBox.appendChild(messageElement); }; document.querySelector("form").addEventListener("submit", (event) => { event.preventDefault(); const message = messageInput.value.trim(); if (message.length > 0) { socket.send(message); messageInput.value = ""; } }); ``` 这是一个非常简单的WebSocket客户端,它连接到服务器端口`8080`,并通过`onmessage`事件处理程序处理来自服务器的任何消息。每当客户端发送新消息时,它将通过`socket.send`方法将该消息发送到服务器。 4. 最后,启动服务器:在终端中运行`node server.js`。 5. 在浏览器中打开`index.html`文件,你应该看到一个简单的聊天室界面。在多个浏览器窗口中打开该界面,并尝试在其中一个窗口中发送消息。你将看到该消息立即显示在所有窗口中。 现在你已经创建了一个简单的WebSocket聊天室,你可以扩展它以包括更多功能,例如昵称、私人消息、表情符号等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

woniudaidai

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值