2015-06-06 4 views
2

Я пытаюсь сделать css3/js eyeball. Он смотрит на указатель мыши.предотвратить радиальный градиент от изменения формы и размера

Как можно видеть здесь, это своего рода-работ http://jsfiddle.net/fsg3he2u/ (мыши в окне предварительного просмотра)

Моя главная проблема заключается в розыгрыше radial-gradient.

radial-gradient(at '+perX+'% '+perY+'%, #000 20%, #469B98 21%, #3083B7 30%, #306BB7 40%, #FFF 25%, #DE8888) рисует градиент и позволяет перемещаться, но форма и размер изменяются при движении. При некотором поиске я обнаружил атрибут circle: radial-gradient(circle at '+perX+'% '+perY+'%, #000 20%, #469B98 21%, #3083B7 30%, #306BB7 40%, #FFF 25%, #DE8888) рисует градиент и позволяет перемещаться, ограничивает форму, но размер изменяется при движении.

Как я могу предотвратить изменение размера? (Я предполагаю, что это еще один атрибут)

Edit: это выглядит довольно полный http://jsfiddle.net/fsg3he2u/23/ делает один или несколько глаз любого размера (все одинакового размера)

Edit 2: я решил продолжить расширение этого для нескольких размеры и пользовательские цвета - http://jsfiddle.net/fsg3he2u/25/

+0

Я уже работал в том направлении, которое предложил Раджкумар, но хотел, чтобы глазное яблоко легко изменялось, изменяя размеры «глазного яблока». Я закончил с этим - http://jsfiddle.net/0cmjrt3t/ – RozzA

+0

... но тогда я ** действительно ** люблю ответ, который предложил Джон, и намного проще изменить точки остановки градиента. Итак, я придумал это: http://jsfiddle.net/fsg3he2u/21/ – RozzA

ответ

1

Я пробовал это в скрипке, и это сработало хорошо; просто добавьте фиксированный размер после вашей формы (150px выглядит довольно приятным IMO).

$("#eyeballer").css('background','radial-gradient(circle 150px at '+perX+'% '+perY+'%, #000 20%, #469B98 21%, #3083B7 30%, #306BB7 40%, #FFF 25%, #DE8888)'); 
    //var perXY = "(" + perX + ", " + perY + ")"; 
    //$("span:first").text("(perX, perY) - " + perXY); 
}); 
+0

с некоторой настройкой, это доказывает гораздо лучшее решение для изменчивый глазчик, чем то, над чем я работал – RozzA

0

Вместо того, чтобы использовать проценты, использовать абсолютные значения градиента расстояний: http://jsfiddle.net/tsr2b9jh/

$("#eyeballer").css('background','radial-gradient(circle at '+perX+'% '+perY+'%, #000 50px, #469B98 55px, #3083B7 80px, #306BB7 90px, #FFF 100px, #DE8888 120px)'); 
+0

Я работал в этом направлении, но это довольно грязно, если вы хотите легко изменить размер глазного яблока – RozzA

Смежные вопросы