Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 09.05.2014, 17:13
Аватар для simple
Профессор
Отправить личное сообщение для simple Посмотреть профиль Найти все сообщения от simple
 
Регистрация: 23.09.2010
Сообщений: 247

Пиксельный линейный градиент в SVG
С праздником господа! Суть проблемы у меня в следующем, никак не получается закрашивать область с точностью до пикселя. Например имеем прямоугольник шириной 650px, мне нужно к примеру закрасить первые 78px в красный цвет до границы, остальные в зеленый. 78px это не константа, а переменная которая может изменяться динамически, т.е возможны любые значения. Вычисляем процент для градиента: (78px / 650px) * 100 = 12%.
<svg id="canvas" xmlns="http://www.w3.org/2000/svg" version="1.1" width="650" height="100"> 
  <defs>
   <linearGradient id="background">
    <stop style="stop-color:red" offset="12%"/>
    <stop style="stop-color:green" offset="0%"/>
   </linearGradient>
  </defs>
  <path d="M0 0 h650 v100 h-650 Z" fill="url(#background)"/>
 </svg>


Получается либо 77px либо 79px или 80px но не как не 78px
Методом научного тыка выяснил что для данного размера области (а может и для любой) минимальный процентный шаг градиента составляет 0.4%, 650 х 0.4% = 2.6px которая в svg округляется до 3. А например 650 х 0.2% = 1.3px который по логике должен округлиться в 2 или 1 округляется в 0. Т.е по сути не получается делать точные переходы цветом.
Браузер Chrome Версия 34.0.1847.131 m.

Подскажите в каком направлении двигаться.
__________________
На начальном этапе события могут казаться случайными, но постепенно проявляется связь, и в конце концов все части целого складываются

Последний раз редактировалось simple, 09.05.2014 в 17:16.
Ответить с цитированием
  #2 (permalink)  
Старый 12.05.2014, 11:39
Профессор
Отправить личное сообщение для tsigel Посмотреть профиль Найти все сообщения от tsigel
 
Регистрация: 12.12.2012
Сообщений: 1,398

Делайте с помощь canvas

Или подставляйте значения в пикселях и перерасчет из процентов в пиксели делайте самостоятельно.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание SVG элемента и вставка на страницу FINoM Events/DOM/Window 3 13.09.2015 16:47
SVG CSS, SVG to WOFF kobezzza Firefox/Mozilla 2 29.03.2013 15:59
Inline SVG as background Paguo-86PK Элементы интерфейса 0 16.12.2011 20:12
Простой графический движок: SVG vs Canvas stryaponoff Общие вопросы Javascript 5 29.06.2010 16:59
svg. обработка событий amigo* Элементы интерфейса 0 23.06.2010 22:31