Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.05.2011, 21:40
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

канва проблемы
Кто нибудь сталкивался с изменениями размеров канвы после её объявления?
1 при изменении размеров появляется вторая пара свойств...
2 центр уходит сам по себе
........................................
Ответить с цитированием
  #2 (permalink)  
Старый 10.05.2011, 22:13
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от dmitriymar
Кто нибудь сталкивался с изменениями размеров канвы после её объявления?
<canvas id="canvas"></canvas>
<script type="text/javascript">
var canvas = document.getElementById('canvas'),
    ctx = canvas.getContext('2d');
    canvas.width = window.innerWidth;
    canvas.height = window.innerHeight;
    ctx.beginPath();
    ctx.arc(*!*canvas.width/2,canvas.height/2*/!*,50,0,Math.PI*2,true);
    ctx.stroke();
</script>

Последний раз редактировалось monolithed, 10.05.2011 в 22:16.
Ответить с цитированием
  #3 (permalink)  
Старый 11.05.2011, 00:41
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от monolithed
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
style пропущен-бывает, запарка) без него размеры канвы устанавливаются равными 0 ,но сама канва приобретает произвольные размеры,в таком варианте она у меня стала примерно в 20 раз больше чем была-задавал меньшие размеры чем исходные.

попробуй канве явно задать размеры при её создании в теге,а затем измени и просмотри через фаербаг-будет две пары атрибутов высоты и ширины.если задать начало координат,то после измения размеров оно окажется не там где было. если до изменения размеров загрузить изображение с явно заданными размерами ,то после изменения размеров канвы оно займёт(даже если его заново загрузить задав явно теже размеры) оно займёт столько же % от площади канвы как и было до изменения её размеров. единственное что помогло удержать контроль -так это перезапись тега канвы с явно заданными размерами-это позволило загружать изображения контролируя их размеры и начало координат-но не во всех браузерах прошло. в старых вообще сбивало координаты и размеры контейнеров содержащих канву на координаты и размеры до изменения-канва хоть и была заменена на новую продолжала существовать со старыми размерами именем содержимым...

Последний раз редактировалось dmitriymar, 11.05.2011 в 00:48.
Ответить с цитированием
  #4 (permalink)  
Старый 11.05.2011, 07:19
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

свойства canvas.width|height - Это разрешение канваса в пикселах, а canvas.style.width|height - просто размеры.
Если canvas.style.width|height не заданы, то размеры канвы совпадают с цифрами canvas.width|height (которые если не заданы равны 300х200)
<canvas style = "border: 1px solid red; width: 100px; height : 150px;" id = ":cnv" width = "10" height = "10"></canvas>
<script type = "text/javascript">
var cnx = document.getElementById(":cnv").getContext("2d");
cnx.fillRect(2,2,6,6); //6x6px выглядит не квадратным так как отношение width/height не совпадает с style.width/style.height
</script>

Если надо например следить за кликами на канве, то свойства width и height должны совпадать с одноименными стилевыми (например по клику нужно поставить точку в этом месте), иначе проецироваться все будет не корректно
__________________
readOnly

Последний раз редактировалось poorking, 11.05.2011 в 07:57.
Ответить с цитированием
  #5 (permalink)  
Старый 11.05.2011, 08:37
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

poorking,
на счёт разрешения просвятил-не знал . спс.-это всё объясняет. но всё равно остаётся проблема.меняю я не разрешение а её размеры-видно на фаербаге что размеры изначально есть -обращаюсь через стиль и походу получаю в разрешении...
Ответить с цитированием
  #6 (permalink)  
Старый 11.05.2011, 08:49
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

dmitriymar,
Странно, вроде все как обычно
<canvas style = "border: 1px solid red;" id = ":cnv"></canvas>
<script type = "text/javascript">
var cnv = document.getElementById(":cnv");
	//разрешение
	cnv.width = "75";
	cnv.height = "25";
	
	//размер
	cnv.style.width = "150px"
	cnv.style.height = "50px"
	
	alert("res = " + cnv.width+" x "+ cnv.height +"\nstyle = " +cnv.style.width+" x " + cnv.style.height)

</script>
__________________
readOnly

Последний раз редактировалось poorking, 11.05.2011 в 08:52.
Ответить с цитированием
  #7 (permalink)  
Старый 11.05.2011, 09:00
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

poorking,
чуть не так -при создании тега канвы задай её размеры.затем измени,просмотри через фаербаг-у меня изменение изменение идёт не размеров а разрешения-хотя должны быть размеры.хотя это может быть и баг браузера
Ответить с цитированием
  #8 (permalink)  
Старый 11.05.2011, 09:08
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

<canvas width = "100" height = "100"></canvas>

Это не размеры а разрешение ) по умолчанию они 300x200, просто тут они идут как атрибуты, но суть та же, если задан стиль с размерами, то отображаться будет размер именно такой, какой в стиле, но если он не задан, то размер будет соответствовать разрешению в пикселах, хотя стилевые свойства будут пустые. (хотя они и так будут пустые, если их только не в коде задать)
Вобщем я для себя понял так что для размеров канвы, именно размеров на страничке, приоритет имеет именно стилевое свойство w/h, но если оно не задано, то на размер влияет разрешение
<style type = "text/css">
canvas{
    width: 40px;
    height: 30px;
     border: 1px solid red;
}
</style>
<canvas width = "1024" height = "768"></canvas>

Выглядит крохотным но на нем уместится скрин моего монитора.

Может из-за этой мешанины атрибутов и свойств в браузерах какой нибудь косяк? Попробуйте в разметке не задавать их, а только в коде менять.
__________________
readOnly

Последний раз редактировалось poorking, 11.05.2011 в 09:12.
Ответить с цитированием
  #9 (permalink)  
Старый 11.05.2011, 09:39
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

Сообщение от poorking
<canvas width = "100" height = "100"></canvas>
Это не размеры а разрешение )
выходит что разрешение,во всех манах какие читал-это называлось размер канвы. но поскольку когда обращаюсь к размерам -появляется новая пара значений-значит разрешение

Последний раз редактировалось dmitriymar, 11.05.2011 в 09:41.
Ответить с цитированием
  #10 (permalink)  
Старый 11.05.2011, 19:20
х.з
Посмотреть профиль Найти все сообщения от dmitriymar
 
Регистрация: 21.11.2010
Сообщений: 4,588

monolithed,
сори, не знал о разрешении)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы с картой изображений mmolib Events/DOM/Window 0 06.12.2010 20:34
jQuery проблемы с раскрывающимся списком teclis jQuery 3 24.08.2010 12:25
Проблемы кроссбраузерности под 64-разрядной OS Сергеев_ЕВ Javascript под браузер 15 26.01.2010 21:58
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
Drug&Drop + всплывание события = проблемы =(( _NoName_ Events/DOM/Window 4 05.03.2009 17:47