모바일에서 a태그 터치영역 안보이게 처리하는 방법.
a { -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-tap-highlight-color: transparent; /* For some Androids */ }
'프로그래밍 > css' 카테고리의 다른 글
[sass] 웹스톰에서 node-sass 설정 해주기 (0) | 2019.08.23 |
---|
모바일에서 a태그 터치영역 안보이게 처리하는 방법.
a { -webkit-tap-highlight-color: rgba(0,0,0,0); -webkit-tap-highlight-color: transparent; /* For some Androids */ }
[sass] 웹스톰에서 node-sass 설정 해주기 (0) | 2019.08.23 |
---|
// 디데이 설정 var d_day = new Date(January 28,2015); // 오늘날짜 설정 var t_day = new Date(); // 타이머 var timer = this.setInterval(timerEventHander, 1000) // 타이머 이벤트 핸들러 호출때 마다 증가될 값 var timerNum = 0; // 타이머 이벤트 핸들러 function timerEventHander(){ // timerNum 증가(밀리세컨드에 따라 1000씩 증가) timerNum = timerNum + 1000; // 디데이까지의 시간 구하기 (단위 : ms) var gap = d_day.dDay.getTime() - (t_day.getTime()+timerNum); // 남은 날짜 var d = Math.floor(gap / (1000 * 60 * 60 * 24)) * -1 // 남은 시간 var h = Math.floor((gap/(1000*60*60)) % 24); // 남은 분 var m = Math.floor((gap/(1000*60)) % 60); // 남은 초 var s = Math.floor((gap/1000) % 60); }
[javascript] 10의 자리 체크 (0) | 2016.11.17 |
---|---|
[javascript] 1차 방정식 (0) | 2016.11.17 |
[javascript] 1차 함수 (0) | 2016.11.17 |
[javascript] HTML 에서 파라미터 가져오기 (0) | 2015.02.03 |
[javascript] window.location 객체 (0) | 2014.12.21 |
오늘 프로젝트를 진행하면서 최초 init()이 실행되고,
jQuery에서 $(selector).scrollTop()을 사용해야 하는 경우가 있었습니다.
그러나 아무리 value를 넣어도 적용되지가 않아 OTL
머리를 한참 쥐어 뜯다가 혹시...혹시!!!!
setTimeout(function(){}, delay)으로 딜레이를 주었더니 움직이네요.
아마도 이미지가 들어간 컨텐츠다 보니까 이미지가 로딩되기 이전에 scrollTop()을 실행하고 있어서
컨텐츠의 높이값을 제대로 가져오지 못하다보니 적용되지 않았던 것 같습니다.
가장 확실한 방법은 컨텐츠가 모두 로딩 완료 되었을 때 적용해 주는 것인 것 같네요.
[tip] GreenShock ScrollToPlugin (0) | 2015.02.06 |
---|---|
[tip] 일차함수 (0) | 2015.02.05 |
[tip] SVN E160028 오류 (0) | 2015.01.27 |
[tip] SVN E220001 오류 (0) | 2015.01.27 |
[tip] 웹스톰에서 svn checkout 에러 발생할 때 (0) | 2015.01.27 |
Error : E160028 commit failed
SVN E160028 오류가 발생했을 때
업데이트가 오래되어 커밋시 발생하는 오류일 수 있으니
업데이트를 먼저 실행 후 커밋을 하면 된다.
[tip] GreenShock ScrollToPlugin (0) | 2015.02.06 |
---|---|
[tip] 일차함수 (0) | 2015.02.05 |
[tip] 최초 시작시 scrollTop() 이 적용되지 않을 때 (0) | 2015.01.28 |
[tip] SVN E220001 오류 (0) | 2015.01.27 |
[tip] 웹스톰에서 svn checkout 에러 발생할 때 (0) | 2015.01.27 |
Error: 220001 (Item is not readable) Description: Unreadable path encountered; access denied
SVN E220001 오류가 발생 했을 때
SVN Server 설정 파일중에서
svnserve.conf 파일을 아래와 같이 설정해준다.
[general]
anon-access = none
출처
http://stackoverflow.com/questions/3584643/svn-access-denied-when-comparing-revisions
[tip] GreenShock ScrollToPlugin (0) | 2015.02.06 |
---|---|
[tip] 일차함수 (0) | 2015.02.05 |
[tip] 최초 시작시 scrollTop() 이 적용되지 않을 때 (0) | 2015.01.28 |
[tip] SVN E160028 오류 (0) | 2015.01.27 |
[tip] 웹스톰에서 svn checkout 에러 발생할 때 (0) | 2015.01.27 |
웹스톰에서 svn checkout을 실행했는데 에러가 발생 했을 때 아래와 같이 하여 해결.
File > Setting > Version Control > Subversion 에서 Use command line client 체크를 해제시켜주면 된다.
출처
http://stackoverflow.com/questions/20797443/intellij-idea-subversion-checkout-error
[tip] GreenShock ScrollToPlugin (0) | 2015.02.06 |
---|---|
[tip] 일차함수 (0) | 2015.02.05 |
[tip] 최초 시작시 scrollTop() 이 적용되지 않을 때 (0) | 2015.01.28 |
[tip] SVN E160028 오류 (0) | 2015.01.27 |
[tip] SVN E220001 오류 (0) | 2015.01.27 |
1. view (pc)- flash actionscirpt3 starling framwork
2. control (mobile) - html5 device orientation event
3. server (node.js) - socket.io
flash를 view로 사용하였고, flash의 object를 모바일기기로 컨트롤하며, 그 둘을 Node.js의 소켓으로 연결하는 테스를 해 보았습니다. 모바일 기기의 좌, 우 기울어짐에 따라 flash의 object가 움직이고 있으며, 모바일 쪽에는 시작하기 버튼을 두어 게임에 관련된 전반적인 사항들을 모두 모바일로 제어 할 수 있도록 설계하였습니다.
테스트 모바일 디바이스로는 아이패드, 아이폰, 갤럭시s2를 사용하였으며, pc와 통신에 있어서 만족할 만한 반응속도를 얻을 수 있었습니다. 영상에서 사용된 디바이스는 갤럭시s2 입니다.
[Node.js] net 모듈 + flash 소켓통신 (0) | 2015.01.27 |
---|---|
[nodeJS] Socket.IO 방만들기 (0) | 2015.01.27 |
[nodeJS] Socket.IO 모듈 (0) | 2015.01.27 |
[nodeJS] Express / Routes / Jade 모듈 (0) | 2015.01.27 |
[nodeJS] connect / connect_router 모듈 (0) | 2015.01.27 |
1. app.js
// -------------------------------------- // Imports // -------------------------------------- var net = require('net'); var mySocket; // -------------------------------------- // Construct The Socket // -------------------------------------- // create the server and register event listeners var server = net.createServer(function(socket) { mySocket = socket; mySocket.on("connect", onConnect); mySocket.on("data", onData); }); // -------------------------------------- // Events // -------------------------------------- /** * Handles the Event:"connect"
. * */ function onConnect() { console.log("Connected to Flash"); } /** * Handles the Event:"data"
. * * When flash sends us data, this method will handle it * */ function onData(d) { if(d == "exit\0") { console.log("exit"); mySocket.end(); server.close(); } else { console.log("From Flash = " + d); mySocket.write(d, 'utf8'); } } // -------------------------------------- // Start the Socket // -------------------------------------- server.listen(3000, "127.0.0.1");
2. flash (as3)
package { // -------------------------------------- // Imports // -------------------------------------- import flash.display.Sprite; import flash.events.DataEvent; import flash.events.Event; import flash.events.IOErrorEvent; import flash.events.KeyboardEvent; import flash.events.MouseEvent; import flash.net.XMLSocket; import flash.text.TextField; import flash.ui.Keyboard; // -------------------------------------- // Class // -------------------------------------- /** *The
* */ public class NodeJSDemo extends Sprite { // -------------------------------------- // Properties // -------------------------------------- // PUBLIC GETTER/SETTERS /** * The core object which connects client to * server for real-time communication */ private var _xmlSocket:XMLSocket; /** * The sole UI element to show some test output */ private var _textField:TextField; // PUBLIC CONST // PRIVATE // -------------------------------------- // Constructor // -------------------------------------- /** * This is the constructor. * */ public function NodeJSDemo() { // SUPER super(); // EVENTS addEventListener(Event.ADDED_TO_STAGE, _onAddedToStage); // VARIABLES // PROPERTIES _textField = new TextField (); _textField.width = 300; _textField.height = 300; _textField.multiline = true; _textField.htmlText = ""; addChild(_textField); // METHODS } // -------------------------------------- // Methods // -------------------------------------- // PUBLIC /** * Handles the Event:NodeJSDemo
class is ...Event.CHANGE
. * * @param aEventEvent
The incoming aEvent payload. * * @return void * */ private function _onAddedToStage(aEvent : Event):void { // CREATE THE SOCKET AND CONNECT - I'M NOT SURE WHAT PARAMETERS ARE VALID HERE // BUT IT MUST MATCH THE SETTINGS WITHIN THE 'HelloWorldNodeJS.js' FILE YOU ARE USING _xmlSocket = new XMLSocket("127.0.0.1", 3000); // EVENTS stage.removeEventListener(MouseEvent.CLICK, _onAddedToStage); // _xmlSocket.addEventListener(Event.CONNECT, _onConnected); _xmlSocket.addEventListener(IOErrorEvent.IO_ERROR, _onIOError); } // PRIVATE // -------------------------------------- // Event Handlers // -------------------------------------- /** * Handles the Event:Event.CHANGE
. * * @param aEventEvent
The incoming aEvent payload. * * @return void * */ private function _onConnected(aEvent : Event):void { // TRACE trace("onConnect() aEvent: " + aEvent); // EVENTS _xmlSocket.removeEventListener(Event.CONNECT, _onConnected); _xmlSocket.removeEventListener(IOErrorEvent.IO_ERROR, _onIOError); // _xmlSocket.addEventListener(DataEvent.DATA, _onDataReceived); _xmlSocket.addEventListener(Event.CLOSE, _onSocketClose); // stage.addEventListener(KeyboardEvent.KEY_UP, _onKeyUp); } /** * Handles the Event:Event.CHANGE
. * * @param aEventEvent
The incoming aEvent payload. * * @return void * */ private function _onSocketClose(aEvent : Event):void { // TRACE trace("_onSocketClose aEvent : " + aEvent); // EVENTS stage.removeEventListener(KeyboardEvent.KEY_UP, _onKeyUp); _xmlSocket.removeEventListener(Event.CLOSE, _onSocketClose); _xmlSocket.removeEventListener(DataEvent.DATA, _onDataReceived); } /** * Handles the Event:KeyboardEvent.KEY_UP
. * * @param aEventKeyboardEvent
The incoming aEvent payload. * * @return void * */ private function _onKeyUp(evt:KeyboardEvent):void { // HANDLE KEYS if (evt.keyCode == Keyboard.ESCAPE) { //1. SEND 'KILL THE SERVER' TO THE SERVER _xmlSocket.send("exit"); } else { //2. SEND ANY NON-ESCAPE KEY'S CODE ('38' FOR EXAMPLE) TO SERVER // THIS IS A SILLY EXAMPLE OF SENDING A NUMBER TO THE SERVER // JUST SO THE SERVER CAN SEND IT BACK. SIMPLE. _xmlSocket.send(evt.keyCode); } } /** * Handles the Event:DataEvent.DATA
. * * @param aEventDataEvent
The incoming aEvent payload. * * @return void * */ private function _onDataReceived(aEvent : DataEvent):void { try { // Show the server data in text _textField.htmlText += ("From Server: " + aEvent.data + "n"); //scroll down to show latest line _textField.scrollV = _textField.maxScrollV; } catch (error : Error) { // TRACE trace("_onDataReceived error: " + error); } } /** * Handles the Event:IOErrorEvent.IO_ERROR
. * * @param aEventIOErrorEvent
The incoming aEvent payload. * * @return void * */ private function _onIOError(aEvent : IOErrorEvent):void { // TRACE trace("_onIOError aEvent: " + aEvent); // EVENTS _xmlSocket.removeEventListener(Event.CONNECT, _onConnected); _xmlSocket.removeEventListener(IOErrorEvent.IO_ERROR, _onIOError); stage.addEventListener(MouseEvent.CLICK, _onAddedToStage); } } }
[nodeJS] Flash + Html5 + Node.js (0) | 2015.01.27 |
---|---|
[nodeJS] Socket.IO 방만들기 (0) | 2015.01.27 |
[nodeJS] Socket.IO 모듈 (0) | 2015.01.27 |
[nodeJS] Express / Routes / Jade 모듈 (0) | 2015.01.27 |
[nodeJS] connect / connect_router 모듈 (0) | 2015.01.27 |
>npm install socket.io
1. server.js
// fs 모듈 var fs = require('fs'); // 서버생성 var server = require('http').createServer(); var io = require('socket.io').listen(server); // 서버실행 server.listen(3000, function(){ console.log('Server Running at http:127.0.0.1:3000'); }); // 웹 서버 이벤트 연결 server.on('request', function(request, response){ //html 파일 읽기 fs.readFile('index.html', function(error, data){ response.writeHead(200, {'Content-Type': 'text/html'}); response.end(data); }); }); // 소켓서버 이벤트 연결 io.sockets.on('connection', function(socket){ // join 이벤트 socket.on('join', function(data){ socket.join(data); socket.set('room', data); }); // message 이벤트 socket.on('message', function(data){ socket.get('room', function(error, room){ io.sockets.in(room).emit('message', data); }); }); });
2. index.html
<!DOCTYPE HTML> <html> <head> <title> SOCKET.IO ROOM </title> <meta charset="utf8" /> <script src="/socket.io/socket.io.js"></script> <script src="http://code.jquery.com/jquery-1.8.0.min.js"></script> <script> $(document).ready(function(){ //변수선언 var room = prompt('방 이름을 입력하세요.',''); var socket = io.connect(); //소켓 이벤트 연결 socket.emit('join', room); socket.on('message', function(data){ $('<p>'+data+'</p>').appendTo('body'); }); //버튼 이벤트 $('#btn').click(function(){ var msg = $('#msg').val(); socket.emit('message', msg); }); }); </script> </head> <body> <input id="msg" type="text" style="width:100px;" /> <input id="btn" type="button" value="send" /> </body> </html>
[nodeJS] Flash + Html5 + Node.js (0) | 2015.01.27 |
---|---|
[Node.js] net 모듈 + flash 소켓통신 (0) | 2015.01.27 |
[nodeJS] Socket.IO 모듈 (0) | 2015.01.27 |
[nodeJS] Express / Routes / Jade 모듈 (0) | 2015.01.27 |
[nodeJS] connect / connect_router 모듈 (0) | 2015.01.27 |
>npm install connect
>npm install connect_router
>npm install socket.io
1. app.js
/* 폴더구조 1. html - html 페이지 2. node_modules - nodejs 모듈 3. Resource - js, css, images 등의 리소스 파일 */ // http 서비스를 하기 위해 var connect = require("connect"), connect_router = require("connect_router"), fs = require("fs"), url = require("url"); //서버 객체를 얻어옵니다. var server = connect.createServer() .use(connect.static(__dirname + "/Resource")) // 각종 리소스 폴더 .use(connect.bodyParser()) // post 방식 전송된 데이터 읽어오기 위해 .use(connect_router(main)) // 페이지 라우팅 처리할 함수 .use(connect.errorHandler({stack:true, message:true, dump:true})) // 에러출력 및 처리 .listen(3000); //페이지 라우팅을 해서 클라이언트에 서비스할 함수 function main(app){ app.get("/", function(request, response){ console.log("index.html 클라이언트의 요청이 왔습니다."); //클라이언트에 응답할 html 파일을 읽어서 응답한다. fs.readFile("html/index.html", function(error, data){ response.writeHead(200, {"Content-Type":"text/html"}); response.end(data); }); }); } /* * 클라이언트와 웹소켓 연결을 하기 위한 작업 */ //필요한 모듈을 얻어온다. var socketio = require("socket.io"); // 클라이언트와 소켓 통신을 하기 위한 io 객체를 얻어온다. var io = socketio.listen(server); //불필요한 로그는 제거 하기 위해 io.set("log level", 2); // 클라이언트가 소켓 서버 접속을 하면 'connection' 이벤트가 발생한다. io.sockets.on('connection', function(socket){ /* * 클라이언트의 이벤트에 귀를 귀울이거나, 혹은 이벤트를 발생시키면 된다. * * 3가지 통신 방법 * 1. public => io.sockets.emit("이벤트명", data); * 2. broadcast => io.broadcast.emit("이벤트명", data); * 3. private => io.sockets.sockets[id].emit("이벤트명", data); */ console.log("connection"); socket.on('name', name); //when the user disconnects.. perform this socket.on('disconnect', function(){ console.log('disconect'); }); function name($data){ socket.emit('name', $data); } });
2. /html/index.html
<!DOCTYPE HTML> <html> <head> <title> socket.io </title> <script src="/socket.io/socket.io.js"></script> <script src="/js/jquery-1.8.0.min.js"></script> <script> $(document).ready(function(){ var socket = io.connect('http://127.0.0.1:3000'); // on connection to server, ask for user's name with an anonymous callback socket.on('connect', function(){ }); // addEventListener(event, callback) socket.on('name', name); $('#btn_send').click(function(){ var inputValue = $('#input_text').val(); socket.emit('name', inputValue); }); function name($data){ $("#result_text").html($data); } }); </script> </head> <body> <input id="input_text" style="width:100px;" /> <input id="btn_send" type="button" value="send" /> <div id="result_text">result</div> </body> </html>
[Node.js] net 모듈 + flash 소켓통신 (0) | 2015.01.27 |
---|---|
[nodeJS] Socket.IO 방만들기 (0) | 2015.01.27 |
[nodeJS] Express / Routes / Jade 모듈 (0) | 2015.01.27 |
[nodeJS] connect / connect_router 모듈 (0) | 2015.01.27 |
[nodeJS] jade 모듈 (0) | 2015.01.27 |