Я пытался сделать следующее окно есть большая активная область:Что вызывает это больше SourceAlpha чем SourceGraphic
<svg width="150" height="150">
<rect x="10.5" y="10.5" width="10" height="10"
stroke="black" stroke-width="3" fill="none"/>
</svg>
так, чтобы сделать это, я бездельничал немного с фильтрами; Сначала я применил цветную матрицу, а затем я хотел бы начать изменение размера черного фона части, но это было как-то уже больше исходного изображения:
<svg width="150" height="150">
<filter id="fillBlack">
<feColorMatrix type="matrix" in="SourceAlpha" result="blackBox"
values="0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
1 1 1 1 1"/>
<feComposite operator="over" in="SourceGraphic" in2="blackBox"/>
</filter>
<rect x="50" y="50" width="10" height="10" filter="url(#fillBlack)"
stroke="transparent" stroke-width="50" fill="white"/>
</svg>
Теперь это кажется чтобы приблизиться к моему желаемому результату уже, но есть две проблемы: во-первых, я действительно не понимаю, почему это сработает, а во-вторых, потому что я не знаю, что вызывает это, я не могу изменить размер черного фона ,
Кажется, что фон всегда на 10% больше; попробуйте изменить значения для width
и height
на <rect>
, а черный фон будет граница 10% вводимый ширина/высота вокруг оригинальной коробке
Так что заставляет SourceAlpha
быть больше, и как я на самом деле изменить размер черного фона, чтобы я мог иметь его размер, который я хочу?
PS: Я бы предпочел не ставить другой <rect>
поверх текущего, но я бы сделал все, что сделал с filter
, как у меня здесь.
Да. Спасибо, Майкл.Я обновлю ответ. –
Я не добавлял фильтр, чтобы увеличить область, на которую можно щелкнуть, я добавил более крупный прозрачный штрих, чтобы увеличить область, на которую можно щелкнуть, и фильтр должен просто сделать вид одинаковым. – Joeytje50
Подход с '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' отлично работает. Вторая часть вашего ответа - это уже тот подход, который я использовал в своем втором демо, но спасибо за подсказку о 'pointer-events'. – Joeytje50