Đăng nhập | Đăng ký

Danh sách thành viên | Cá nhân | Nhà đất, bất động sản

Diễn đàn    Cổng thông tin , Chính phủ điện tử, VSP (VerySmart Portal), MVC Model View Controller, json, webapi    Lập trình javascript hướng đối tượng, some point move

Thành viênNội dung
hung


10  bài
20-09-2019 08:55:51
//var cv = document.getElementById("myCanvas");
const map = theMap();
//map.createWorkers();
loadMap();
setInterval(loadMap, 8000); // 8s
document.getElementById("factorymap").addEventListener("wheel", mapZooming);

function loadMap() {
d = new Date();
$('#data').load("/positions.ashx?d=" + d.getTime(), function (response_data, status, xhr) {
//console.log('load data complete');
map.run(response_data);
});
}

function clickme(obj) {
// do some thing
var moreinfo = document.getElementById("moreinfo");
moreinfo.innerHTML = "";
moreinfo.style.left = (parseInt(obj.style.left, 10) - 40) + "px";
moreinfo.style.top = (parseInt(obj.style.top, 10) - 30) + "px";
moreinfo.innerText = map.findName(obj.id);
}

function mapZooming(event) {
var moreinfo = document.getElementById("moreinfo");
moreinfo.style.left = "-300px";
moreinfo.style.top = "-300px";

if (event.deltaY < 0) {
console.log('scrolling up');
map.zoomIn();
}
else if (event.deltaY > 0) {
console.log('scrolling down');
map.zoomOut();
}
}

// object map
function theMap() {
const obj = {};
obj.wks = new Array();
obj.scale = 100;

obj.findSetpos = function (data_pos) {
for (i = 0; i < this.wks.length; i++) {
var m_worker = this.wks;

if (m_worker.id.localeCompare(data_pos.id) == 0) {
// found
m_worker.setNewPosition(data_pos.x, data_pos.y);

x = (m_worker.x * this.scale / 100) + 'px';
y = (m_worker.y * this.scale / 100) + 'px';
$('#' + m_worker.imgctl.id).animate({ top: y, left: x }, 700);
return true;
}
}

// not found add list
const worker = new theWorker();
if (worker) {
worker.setData(data_pos);
this.wks.push(worker);

var factorymap = document.getElementById("factorymap");
var img = document.createElement("img");
factorymap.appendChild(img);
img.src = "/theme/point3.png";
img.id = worker.id;
img.style.position = "absolute";
img.setAttribute("onclick", "clickme(this);");
worker.setControl(img);
}

return false;
}

obj.findName = function (id) {
for (i = 0; i < this.wks.length; i++) {
var m_worker = this.wks;
if (m_worker.id.localeCompare(id) == 0) {
return m_worker.name;
}
}

return '';
}

obj.run = function (response_data) {
if (response_data == null) return;
if (response_data === "") return;
var arr = JSON.parse(response_data);

for (i = 0; i < arr.length; i++) {
found = this.findSetpos(arr);
}

this.rePlace();
}

obj.rePlace = function () {
for (i = 0; i < this.wks.length; i++) {
var worker = this.wks;
x = (worker.x * this.scale / 100) + 'px';
y = (worker.y * this.scale / 100) + 'px';
$('#' + worker.imgctl.id).animate({ top: y, left: x }, 20);
}
}

obj.zoomIn = function () {
if (this.scale < 111) {
this.scale += 5;
var fmap = document.getElementById("fmap");
fmap.style.width = (this.scale * 1691 / 100) + 'px';
this.rePlace();
}
}

obj.zoomOut = function () {
if (this.scale > 39) {
this.scale -= 5;
fmap.style.width = (this.scale * 1691 / 100) + 'px';
this.rePlace();
}
}

return obj;
}

// object worker
function theWorker() {
const obj = {};
obj.name = '';
obj.id = '';
obj.x = 0;
obj.y = 0;
obj.imgctl;

obj.setNewPosition = function (x2, y2) {
obj.x = x2;
obj.y = y2;
};

obj.setControl = function (ctl) {
this.imgctl = ctl;
};

obj.setData = function (data) {
//console.log(data.id + ',' + data.name + ',' + data.x + ',' + data.y);
obj.name = data.name;
obj.id = data.id;
obj.x = data.x;
obj.y = data.y;
}

return obj;
}



=======
html đây :
=======

<!doctype html>
<html lang="en">
<head>
<title>Factory workers manager</title>
<script type="text/javascript" src="/jquery.min.js"></script>
</head>
<body>
<div id="factorymap" style="border:1px solid #ccc;position:relative;overflow:hidden;">
<img id="fmap" src="/theme/map2.jpg" />
<div id="moreinfo" class="hint-text" style="background:#f6dab2;width:160px;position:absolute;border:1px solid #ccc;top:-50px;left:-50px;z-index:30;"></div>
</div>
<div id="data" style="display:none;"></div>
<script type="text/javascript" src="/pos.js"></script>
</body>
</html>
 
aspnet

Lập trình không biên giới
598  bài
20-09-2019 06:01:39
Vòng lặp for

for (i = 0; i < this.wks.length; i++) {
var m_worker = this.wks;
if (m_worker.id.localeCompare(id) == 0) {
return m_worker.name;
}
}

Tốc độ chậm hơn câu lệnh :

let wk = this.wks.find(x => x.id === id);

===
javascript thật kỳ diệu
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
598  bài
04-10-2019 03:50:01

function walking() {
console.log('+++');
if (wk.loaded == 0)
loadData();
else
wk.walk();

setTimeout(walking, 3000);
}
walking();


Khi setInterval(foo, 3000); không hoạt động ta phải dùng cách này
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
598  bài
29-10-2019 09:56:45
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for (var i = 0; i < ca.length; i++) {
var c = ca;
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
598  bài
29-10-2019 09:56:56
obj.imageExists = function (image_url) {
var http = new XMLHttpRequest();

http.open('HEAD', image_url, false);
http.send();

return (http.status != 404);
}
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
598  bài
29-10-2019 09:57:46
$.ajax({
type: "GET",
url: "http://192.168.40.148:3001/api/place/places",
beforeSend: function (xhr) { xhr.setRequestHeader('access_token', token); },
success: function (resp) {
console.log('data ', resp.data);
for (i = 0; i < resp.data.length; i++) {
var li = document.createElement("LI");
li.innerHTML = '<a href="/live2.html?token=' + token + '&place_id=' + resp.data._id + '">' + resp.data.name + '</a>';
document.getElementById("places").appendChild(li);

if (resp.data._id === place_id) {
$('#myKhucvuc').html(resp.data.name);
imgurl = 'http://192.168.40.148:3001/resource/place/' + resp.data.mapImage.name;
if (obj.imageExists(imgurl)) $('#fmap').attr('src', imgurl);
}
}
}
});

api post with headers
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
598  bài
30-10-2019 03:20:49
WebClient wc = new WebClient();
byte [] bytes = wc.DownloadData(imgurl);
MemoryStream ms = new MemoryStream(bytes);
Image img = Image.FromStream(ms);
return img;

Get Image from url
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 

Chủ đề gần đây :

Cùng loại :

 
Tên file Người đăng Ngày Lượt
vspforum.zip
Ma nguon vspforum ngay xua
aspnet 4/18/2023 6:38:37 AM 8
pdfjs.rar
pdfjs 2017 : hiển thị tốt trên iphone 11, 12, 13 không lỗi, bản 2012 sẽ lỗi trên iphone
aspnet 6/21/2022 11:52:48 AM 2
pdfjs2.rar
Xem file pdf bằng viewer.hml cua pdfjs (thư viện chuẩn mozilla) 2012. https://mozilla.github.io/pdf.js/getting_started/#download có thể download bản prebuild tại đây
aspnet 6/21/2022 11:52:04 AM 2
runner.zip
using three.js, orbitcontrol to view an object move random on map. Di chuyển 1 đồ vật ngẫu nhiên trên bản đồ, sử dụng với demo nhân viên di chuyển trong văn phòng. Toàn js download về là chạy
aspnet 12/5/2019 5:55:14 PM 0
gmap.zip
google map + marker
aspnet 7/17/2019 2:25:05 PM 1
vinsmarthomeservice.zip
java post json to api, use AsyncTask, event listener
aspnet 7/9/2019 5:00:10 PM 1
fblogin.zip
Login facebook bang javascript SDK
aspnet 7/9/2019 9:16:37 AM 0
autocomplete-location.zip
autocomplete location geo from google place, html + js
aspnet 7/4/2019 4:37:55 PM 2
WebAPI.zip
api for android access db (v1.0.0)
aspnet 7/4/2019 9:14:17 AM 8
KydientuPdf.zip
Ky dien tu file PDF su dung itextsharp
aspnet 4/9/2019 3:30:37 PM 9
GooglePlusLogin.zip
Login Google Plus account, C#, web asp.net ver2.0. Simple connect google APIs. Send key, get token, get full account info
aspnet 6/1/2018 10:41:12 AM 11
WebApplication1.rar
Sample su dung thuat toan ma hoa tripDES, co khoa bi mat (privateKey)
aspnet 3/30/2018 10:06:35 PM 8
NETMdbToolsTestApp.rar
dotNet MdbTools for Access 2003/2007/2016 without Microsoft Jet Engine, source C#, https://www.codeproject.com/Articles/283626/MsAccess-MdbTools-with-MFC-and-NET
aspnet 3/26/2018 11:43:16 PM 1
Cryptography_MD5_TriDES_src.zip
Thuật toán mã hóa 2 chiều TriDES, gồm Encrypt và Decrypt, aspnet 2.0
aspnet 3/22/2018 11:20:44 AM 3
mvc.rar
sample project MVC on C#
aspnet 3/20/2018 9:25:36 AM 9
EduPortal.rar
Edu portal frame work for VB.NET
aspnet 3/14/2018 12:00:41 AM 13
AutoEntity.rar
Gencode vb.net visual studio 2015. dotnet v2.0
aspnet 3/13/2018 11:59:16 PM 2
GenCode.rar
Gencode XML, XSLT, Info, DAL .. engine enterprise for quick app database
aspnet 2/5/2018 9:37:28 AM 9
DataXml.rar
Read DB from SQL to XML file, Convert string TCVN to Unicode
aspnet 1/29/2018 2:15:45 PM 4
DesktopModules.rar
Module quản lý tin tức, CMS, quản lý nhóm tin trên dotnetnuke 6.x
aspnet 3/7/2013 4:47:49 PM 1715
CODERVN.NET
Công ty cổ phần công nghệ và dịch vụ AWAS
Công ty cổ phần công nghệ và dịch vụ AWAS, cổng thông tin, chính phủ điện tử, phần mềm quản lý điểm, quản lý sinh viên, http://awas.vn, http://awas.com.vn, phần mềm ứng dụng, dịch vụ công trực tuyến, thiết kế website, thiet ke web, thiết kế web, điện lực, phần mềm quản lý đào tạo, cao đẳng, đại học,cổng thông tin tích hợp, cổng thông tin điện tử, webportal, thư viện điện tử, electric library, library online, email, web, quản lý quan hệ khách hàng, CRM, dịch vụ công trực tuyến, phần mềm hành chính một cửa,