ВЫДЕЛЯТОР как в виндовсе
http://jsfiddle.net/0tfxdp3a/
помогите, не могу понять, как дальше? ? выделятор нужен точно как в виндовсе - чтоб менялась ширина/высота при перемещении слева/вверх/вниз, а не только вправо |
accept,
:-? <!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title> - jsFiddle demo</title> <style type='text/css'> #line{ position: absolute; width: 0px; height: 0px; background: rgba(0,90,255,0.25); border: 1px solid rgba(0,114,255,0.5); box-sizing: border-box; } </style> <script> window.onload = function() { var target = document.getElementById("line"); document.onmousedown = function(e) { var x = e.pageX; var y = e.pageY; document.onmousemove = function(e) { target.style.width = Math.abs(e.pageX - x) + "px"; target.style.height = Math.abs(e.pageY - y) + "px"; target.style.left = (e.pageX < x ? e.pageX : x) + "px"; target.style.top = (e.pageY < y ? e.pageY : y)+ "px"; }; return false }; document.onmouseup = function() { target.style.width = 0 + "px"; target.style.height = 0 + "px"; document.body.style.cursor = "auto"; document.onmousemove = null } };</script> </head> <body> <div id="line"></div> </body> </html> |
Цитата:
|
danik.js,
как веть скажешь, сам так делаю ... а вдруг у ТС великие замыслы ))) |
:write: как от знака избавится кроме как Math.abs ?
|
рони, по правой кнопке мыши выделение тоже срабатывает и при отпускании не убирается. Нужно сделать дополнительную проверку event.which. :)
|
Ruslan_xDD,
напиши проверку event.which не могу придумать вариант, вылетают системные предупреждения. |
Цитата:
Цитата:
|
Цитата:
|
danik.js,
можно так но вдруг есть путь иной var x= -5; if (x < 0) x = -x; alert(x); |
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <title> - jsFiddle demo</title> <style type='text/css'> #line{ position: absolute; width: 0px; height: 0px; background: rgba(0,90,255,0.25); border: 1px solid rgba(0,114,255,0.5); box-sizing: border-box; } </style> <script> window.onload = function() { var target = document.getElementById("line"); document.onmousedown = function(e) { if(e.which > 1) return; var x = e.pageX; var y = e.pageY; document.onmousemove = function(e) { target.style.width = Math.abs(e.pageX - x) + "px"; target.style.height = Math.abs(e.pageY - y) + "px"; target.style.left = (e.pageX < x ? e.pageX : x) + "px"; target.style.top = (e.pageY < y ? e.pageY : y)+ "px"; }; return false }; document.onmouseup = function() { target.style.width = 0 + "px"; target.style.height = 0 + "px"; document.body.style.cursor = "auto"; document.onmousemove = null; } };</script> </head> <body> <div id="line"></div> </body> </html> |
Ruslan_xDD,
ок! я всё пытался if(e.which != 1) return; полёт был непредсказуемый ))) |
Цитата:
|
Цитата:
|
Цитата:
Math.pow(x, 0.5); :D |
Цитата:
|
danik.js, рони наверное имел ввиду, что возможно есть какой-нибудь иной простой путь преобразования в положительное число, через какой-нибудь оператор.
|
Math.abs() - куда проще то?
Math.sign(x)*x :dance: |
:) :write:
var x= -51.6 alert((x>>x)*x||x); var x= 51.6 alert((x>>x)*x||x); |
var x = -5 alert(~x + 1); //5 x = 5; alert(~x + 1);//-5 |
bes,
ищу удаление минуса :write: |
Цитата:
к тому же для побитовых операций идёт преобразование ToInt32 , теряем кучу чисел поэтому, думаю, изящнее и универсальнее Math.abs() всё-таки нет :) |
Часовой пояс GMT +3, время: 02:48. |