-
Функция является асинхронной и возвращает промис с
N
количествомDIV
элементов, каждый из которых содержит наборcanvas
элементов -
Пример вызова:
createCanvasElements(otpions).then(res => {
console.log(res);
}).catch(err => {
console.log(err);
})
options
- это объект, в котором есть 2 обязательных свойства и несколько опциональных-
свойства объекта
options
:Обязательные поля:
src
: типstring
- url адрес изображенияwordsList
: типarray
- массив, содержащий строки предложений из слов которых создаются пазлы, 1 слово в предложение === 1 пазл
Опциональные поля:
extraWidthValue
: типnumber
- диапазон[0-100] - значение, влияющее на соотношение ширины пазлов. Слова с маленьким количеством букв изначально намного меньше слов, в с бо`льшим количеством букв. Чем выше значение, тем длина пазлов становится менее различимой, дефолтное значение10
fontFamily
: типstring
- задает шрифт текста, который присутствует в HTML документе,по умолчанию 'Arial'
fontRatio
: типnumber
- увеличение/уменьшение размера шрифта относительно системного,по умолчанию 1
fontType
: типstring
- принимает одно из значений:'bold'
,'normal'
или 'italic'
- отвечает за тип шрифта, по умолчанию 'bold'borderPuzzle
: типnumber
- толщинарамки
по периметру пазла, дефолтное значение1
shadowPuzzle
: типnumber
- толщинаразмытия тени
по периметру пазла, дефолтное значение2
borderText
: типnumber
- толщинарамки
по периметру текста, дефолтное значение1
shadowText
: типnumber
- толщинаразмытия тени
по периметру текста, дефолтное значение10
colorBorder
: типstring
- цветрамки
по периметру пазла, принимет значения в формате'#fff'
,'rgb(0,0,0)'
,'green'
, по умолчанию'rgb(0,255,250)'
colorShadowBorder
: типstring
- цветтени
по периметру пазла, принимет значения в формате'#fff'
,'rgb(0,0,0)'
,'green'
, по умолчанию'rgb(255,255,250)'
colorShadowText
: типstring
- цветтени
по периметру текста, принимет значения в формате'#fff'
,'rgb(0,0,0)'
,'green'
, по умолчанию'black'
colorText
: типstring
- цветтекста
, принимает значения в формате'#fff'
,'rgb(0,0,0)'
,'green'
, по умолчанию'magenta'
solidTextColor
: типstring
- цветтекста
, принимет значения в формате'#fff'
,'rgb(0,0,0)'
,'green'
, по умолчанию'white'
fontStyle
: типstring
- стильтекста
, принимет одно из двух значений'fillText'
(текст будет иметь полную заливку) или'strokeText'
(текст будет пустой внутри с рамкой по периметру). При указании значения'fillText'
цвет текста задается свойством'solidTextColor'
, при значении'strokeText'
цвет текста меняется свойством'colorText'
-
createCanvasElements({
src: 'https://nexgenua.github.io/images/level1/deerlake.jpg',
wordsList: [
"The students <b>agree</b> they have too much homework.",
"There is a small <b>boat</b> on the lake.",
"They <b>arrived</b> at school at 7 a.m.",
"Is your birthday in <b>August</b>?",
"I ate eggs for <b>breakfast</b>.",
"I brought my <b>camera</b> on my vacation.",
"The <b>capital</b> of the United States is Washington, D.C.",
"Did you <b>catch</b> the ball during the baseball game?",
"People feed <b>ducks</b> at the lake.",
"The woman <b>enjoys</b> riding her bicycle."
],
fontFamily: 'Arial',
fontRatio: 0.7,
fontType: 'bold',
borderPuzzle: 1,
shadowPuzzle: 2,
borderText: 1,
shadowText: 10,
colorBorder: 'rgb(255,255,250)',
colorShadowText: 'black',
solidTextColor: 'white',
fontStyle: 'fillText'
}).then(res => {
document.body.append(...res);
})
Демку можно посмотреть здесь: https://codepen.io/nexgenua/pen/NWxNBeL