Как создать такой эффект (см. Изображение ниже), используя чистый HTML JS и CSS? - PullRequest
1 голос
/ 15 марта 2010

Как создать такой эффект (см. Изображение ниже), используя чистый HTML JS и CSS?

alt text
(источник: narod.ru )

Для фона сайта (и я надеюсь, что благодаря JS CSS и HTML он сможет менять цвета)

Ответы [ 4 ]

2 голосов
/ 15 марта 2010

Ну, это можно сделать с помощью CSS-градиентов .
Но я не уверен, поддерживается ли это во всех браузерах.

Для кросс-браузерной поддержки используйте эту библиотеку .

0 голосов
/ 16 марта 2010

Вам нужен другой подход.

Проверьте этот URL: http://www.eyecon.ro/colorpicker/.

Как вы можете видеть, когда вы перемещаете ползунок вверх и вниз, он меняет фон элемента выбора.

Но если вы проверите этот DIV с помощью Firebug, вы увидите, что он всегда использует это изображение: http://www.eyecon.ro/colorpicker/images/colorpicker_overlay.png

.. потому что родительский div использует фактический цвет:

<div class="colorpicker_color" style="background-color: rgb(255, 0, 0);"><div>

Попробуйте заменить это значение фона в firebug, например, установите его на green - вы увидите, что градиент все еще там, но этот градиент времени зеленый.

И это наш трюк. Создайте полупрозрачное изображение PNG для использования в качестве фона с шаблоном, показанным выше. Поместите его поверх однотонного фона , и при изменении цвета фона оно будет выглядеть так, как будто вы заменили фоновое изображение.

Так в теоретическом коде:

body { background:red; margin:0; padding:0; /* make sure overlay can stretch 100% in all directions*/ }
#background-overlay { background:url(path/to/image.png); }

<body>
  <div id="background-overlay">
  ..content goes here
  </div>
</body>

Недостатком этого подхода является то, что IE6 не поддерживает прозрачность для файлов PNG. Вы можете использовать какое-то png исправление прозрачности или полностью игнорировать этот эффект для пользователей IE6. (так как мы все равно не заботимся об их чувствах, верно?; -))

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

0 голосов
/ 15 марта 2010

Технически говоря, вы можете изменить фоновое изображение с помощью CSS. Чтобы правильно расположить его слева направо, нужно создать изображение шириной, которая делает границы между горизонтально повторяющимися (background-repeat: repeat-x) изображениями бесшовными, так что это будет выглядеть так, будто каждая диагональная линия поднимается с левой стороны, где диагональ на изображении справа отпадает.

0 голосов
/ 15 марта 2010

Я думаю, что для этого может потребоваться изображение (которое можно установить с помощью CSS на фоне любого контейнера, в который вы хотите поместить это), но я не думаю, что вы сможете сделать это с помощью чистых сценариев.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...