#javascript #html #gradient
#javascript #HTML #градиент
Вопрос:
в таблице есть шахматная доска, каждая клетка — TD.
как можно использовать градиенты html5 (и javascript для случайности) для создания фона текстуры дерева для темных квадратов?
Ответ №1:
Я беру большую текстуру дерева (меняю на ту, которая вам нравится) и беру случайный ее фрагмент с непрозрачностью 50%, затем под ним случайный коричневатый цвет, чтобы добавить уникальный оттенок к каждому квадрату. Вы можете настроить все это, чтобы получить желаемый эффект. Я перепутал некоторые градиенты, и они выглядели глупо.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6/jquery.min.js"></script>
<style>
div {
width: 100px; height: 100px; margin: 1px;
}
div.texture {
background: url(http://gallery.hd.org/_exhibits/textures/wood-grain-closeup-1-DHD.jpg);
opacity:0.4; filter:alpha(opacity=100);
}
</style>
<script>
$(function(){
$('div.bg').each(function(){
// make each square a random brown
var browns = new Array('CD853F','8B4513','A0522D');
var col = Math.floor(Math.random()*3);
$(this).css('background-color',browns[col]);
// the dimensions of your texture minus square size
var image_width = 500;
var image_height = 400;
// get a random positions
var x = Math.floor(Math.random()*image_width);
var y = Math.floor(Math.random()*image_height);
// make them negative
x = x - (x * 2);
y = y - (y * 2);
var d = $(this).children('div.texture');
d.css('background-position', x 'px' ' ' y 'px');
});
});
</script>
<div class='bg'><div class='texture'></div>
<div class='bg'><div class='texture'></div>
Комментарии:
1. Если вам нужно чисто JS-решение без базовой текстуры, то я понятия не имею
2. спасибо за совет, но хотелось бы, чтобы страницы не зависели от серверов (скорость, работа в автономном режиме). я предполагал / надеялся, что радиусные градиенты можно было бы использовать немного как фракталы.
3. Ну, конечно, вы бы поместили изображение на свой собственный сервер, а не на него горячую ссылку .. но .. там есть фракталы JS
4. подразумевается независимость от любого сервера. в то же время, получая те же результаты, что и при использовании gradient — fuzzy. неправильные цвета, но лучший пример на данный момент: -webkit-повторяющийся-радиальный-градиент (верхний левый, круг, красный, синий 10%, красный 20%)