прошу прощения - бред написал выше
|
Всем привет.
<!DOCTYPE HTML 4.0> <html xmlns:v="urn:schemas-microsoft-com:vml"> <head> <style> v\:*{behavior: url(#default#VML);} </style> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <script type="text/javascript"> var shape = document.createElement('v:shape'); document.body.appendChild(shape); var formulas = document.createElement('v:formulas'); formulas.className = 'c'; shape.appendChild(formulas); shape.coordsize = "500,500"; shape.style.position = 'absolute'; shape.className = 'c'; shape.fillcolor="red"; shape.style.width = '500px'; shape.style.height = '500px'; var path = "m 100,100 l 200,300 300,400 200,100 x e ns" shape.setAttribute('path',path); </script> </body> </html> Данный код рисует изображение только при условии !DOCTYPE HTML 4.0 или вообще без доктайпа, но как заставить его нарисовать картинку с использованием DOCTYPE HTML или HTML 5.0? Народ прошу откликнетесь, знаю что тема малоинтересная, но все же. |
<!DOCTYPE HTML> <xml:namespace ns="urn:schemas-microsoft-com:vml" prefix="v" /> <html> <head> <style> v\:shape{behavior: url(#default#VML);} v\:formulas{behavior: url(#default#VML);} </style> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body> <script type="text/javascript"> var shape = document.createElement('v:shape'); document.body.appendChild(shape); var formulas = document.createElement('v:formulas'); formulas.className = 'c'; shape.appendChild(formulas); shape.coordsize = "500,500"; shape.style.position = 'absolute'; shape.className = 'c'; shape.fillcolor="red"; shape.style.width = '500px'; shape.style.height = '500px'; shape.path = "m 100,100 l 200,300 300,400 200,100 x e ns"; //shape.setAttribute('path',path); </script> </body> </html> IE 8 css свойство вида: v\:* не понимает, нужно указывать явно названия элементов. задавать path через .setAttribute в ИЕ не надо. Он так работать не будет, нужно обращаться на прямую shape.path ну и как видишь namespace нужно указывать в xml теге а не в html что бы не прописывать XML тег и не писать стили, это можно сделать через javascript: try { if (!document.namespaces.v) { document.namespaces.add("v", "urn:schemas-microsoft-com:vml"); } } catch (e) {} document.v_shape_stylesheet = document.createStyleSheet(); document.v_shape_stylesheet.addRule("v\\:shape", "behavior: url(#default#VML);"); document.v_shape_stylesheet.addRule("v\\:formulas", "behavior: url(#default#VML);"); Удачи! |
devote,
от спасибо за исчерпывающий ответ! |
Всем привет!:) Вот балуюсь дальше с канвасом. Получил какой-то зэбский эфект при добавлении стилей к самому канвасу.
<body> <script type="text/javascript"> var cnvs = document.createElement('canvas'); document.body.appendChild(cnvs); cnvs.style.height = "1000px"; cnvs.style.width = "1000px"; var c = cnvs.getContext('2d'); c.fillStyle = "#f00"; c.fillRect(10,10,100,100); c.fill(); </script> </body> В итоге квадрат не квадрат да еще и замылинный, так сказать "блур". Кто-нибудь встречал подобный прикол? UPD Если писать в процентах ширину и высоту то прикол работает более верно. <body> <script type="text/javascript"> var cnvs = document.createElement('canvas'); document.body.appendChild(cnvs); cnvs.style.height = "200%"; cnvs.style.width = "200%"; var c = cnvs.getContext('2d'); c.fillStyle = "#f00"; c.fillRect(10,10,100,100); c.fill(); </script> </body> |
хм.. размытие без флеша и сильверлайта? в JS ?
заманчиво, UpJump ! |
melky,
мне тоже эта темка по душе, но блин не может же быть это просто положительным побочным эффектом, хотя сколько не читал про канвас ничего подобного не видел. |
не могу про это нагуглить
нашел блур для картинок, блур даже для страницы html последнее повергло в шок. это чо ? насчет последнего : это трюк с css. смотри стили у элемента с id="overlay" |
ну да юмор.
|
Цитата:
|
Часовой пояс GMT +3, время: 06:30. |