socket中的随意拖拽

2017-11-02  本文已影响0人  我就是心虚

首先要配置node.js 的运行环境
1、在app.js中设置引入socket.io文件

var express = require('express');
var app = express();
var server = require('http').Server(app);(自己添加的)
var io = require('socket.io')(server);(自己添加的)

2、在HTML中定义一个块元素

【html代码片段】
<div id="box"></div>
【js代码片段】
var socket = io.connect('http://localhost:9000');
      var old = {};
      var oldX = box.offsetLeft;
      var oldY = box.offsetTop;
      box.onmousedown = function(e){
            var elX = e.clientX;
            var elY = e.clientY;
            oldX = box.offsetLeft;
            oldY = box.offsetTop;
            socket.emit("pos",{"elX":elX,"elY":elY});
            document.onmousemove = function(e){
                var l = e.clientX;
                var t = e.clientY;
                socket.emit("cur",{"l":l,"t":t})
            }
            document.onmouseup = function(){
                      document.onmousedown = null;
                      document.onmousemove = null;
              }
      }
      socket.on("position",function(data){
            old = data;
      })
      socket.on("curpos",function(data){
            box.style.left = oldX+data.l-old.elX + "px"
            box.style.top = oldY+data.t-old.elY + "px"
      })

3、在app.js中

io.on('connection', function (socket) {
    socket.on("pos",function(data){
      io.emit("position",data)
    });
    socket.on("cur",function(data){
      io.emit("curpos",data)
    })
});

server.listen(9000);
上一篇下一篇

猜你喜欢

热点阅读