прошу прощения - бред написал выше
|
Всем привет.
<!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" |
ну да юмор.
|
Цитата:
|
kobezzza,
знаю эту тему.:) Но там одним канвасом дело не обходится. |
Ну там канвас в контексте WebGL:)
|
Цитата:
<!doctype html> <html> <body> <script> var cnvs = document.createElement('canvas'); document.body.appendChild(cnvs); cnvs.height = 1000; cnvs.width = 1000; var c = cnvs.getContext('2d'); c.fillStyle = "#f00"; c.fillRect(10,10,100,100); c.fill(); </script> </body> </html> |
x-yuri, уже понял:)
|
Всем привет! Господа помогите разобраться с чисткой памяти.
Вот код: <!DOCTYPE HTML> <html> <head> </head> <body> <script type="text/javascript"> var body = document.body; document.onclick = add; function add(){ var div = document.createElement("div"); body.appendChild(div); body.removeChild(div); div=null; } </script> </body> </html> Дело такое. Не удаляет насовсем из памяти созданные div-ы при клике. Вроде ссылки на объект не оставляю. Короче не пойму никак в чем подвох. ЗЫ Тестил с помощью sIEve-0.0.8. |
|
B@rmaley.e><e,
спасибо, уже читал:). Впрочем проблема не прослеживается как оказалось ни в одном браузере. Возможно не стоит так сильно доверять стороннему софту. |
Всем привет!
var str="MadMax"; var re = /(?=Mad).+/; alert(re.exec(str)); В общем не врублюсь в чем соль. Ожидаю получить "Max". Как я понимаю "Mad" должно игнорироваться. |
|
Цитата:
Сравните var str="MadMax"; var re = /(?=dM).+/; alert(re.exec(str)); |
Хорошо но ведь это не должно уж точно запоминать 'M', но в итоге мимо.
var str="MadMax"; var re = /(?:M).+/; alert(re.exec(str)); |
Запоминать не должно, а входить в найденное M будет.
Вы пытаетесь реализовать просмотр назад, которого нет в JavaScript. |
Цитата:
|
Вы хотите найти строку Max слева, от которой находится строка Mad, правильно? Это называется просмотр назад.
|
Все ясно. Спасибо
|
Часовой пояс GMT +3, время: 23:53. |