The JavaScript tiles component.
Build
The repository contains pre-compiled files, but if you want to add your files and compile, then run the following commands in the repository folder.
- npm install
- npm run production
or
- npm run development
The build required NodeJs version 6 or higher.
Usage
//If you use TypeScript in your project.
import CSTiles from CSTiles.ts
//If you use JavaScript in your project.
let window = global;
request("CSTiles.js");
let CSTiles = window["CSTiles"];
//If you just want to use JavaScript as usual.
<script src="js/CSTiles.js"></script>
//Then call just CSTiles class with parameters.
new CSTiles(<domParentNode>,<objGridParams>,<arrTiles>);
Parameters
- domParentNode
The parent dom element in which the tiles will be inserted.
- objGridParams
The parameters are describing the grid.
- gridSize <number>
The size of the grid in the baseline condition.
- tileMargin <number>
The distance between tiles in pixels.
- tilePadding <number>
The distance from the edge of the tile to the content in pixels.
- tileContent <Object>
The object describing the parameters of the default tile.
type: 'image',
src: './images/1.jpg'
type: 'iframe',
src: 'https://www.youtube.com/embed/w1I-HWAP6N8?controls=0&showinfo=0'
type: 'video',
src: [
'./videos/index.mp4'
],
poster: './images/3.jpg'
type: 'audio',
src: [
'./audios/index.mp4'
],
poster: './images/4.jpg'
type: 'html',
html: 'Text',
poster: './images/5.jpg'
type: 'dom',
query: '#dfgdfhdhfghf',
poster: './images/6.jpg'
- adaptiveMedia <Object>
The object describing the adaptive ranges for tiles.
"imac": "2560-",
"desktops-huge": "1920-2560",
"desktops-big": "1600-1920",
"desktops": "1440-1600",
"base": "1280-1440",
"tablet-landscape": "1024-1280",
"tablet": "768-1024",
"phone-landscape": "480-768",
"phone": "320-480",
"small": "-320"
- gridAdaptiveSize <Object>
The object describing adaptive tile sizes.
"imac": 10,
"desktops-huge": 10,
"desktops-big": 10,
"desktops": 8,
"base": 6,
"tablet-landscape": 6,
"tablet": 4,
"phone-landscape": 3,
"phone": 2,
"small": 1
- tileAdaptiveMargin <Object>
The object describing adaptive indentation between the tiles.
"imac": 10,
"desktops-huge": 10,
"desktops-big": 10,
"desktops": 8,
"base": 6,
"tablet-landscape": 6,
"tablet": 4,
"phone-landscape": 3,
"phone": 2,
"small": 1
- tileAdaptivePadding <Object>
The object describing adaptive spacing from the edge to the content tiles.
"imac": 10,
"desktops-huge": 10,
"desktops-big": 10,
"desktops": 8,
"base": 6,
"tablet-landscape": 6,
"tablet": 4,
"phone-landscape": 3,
"phone": 2,
"small": 1
- arrTiles
The array of objects describing the tiles.
- tileSize <number>
The size of the tile in units of the mesh grid.
- tileMargin <number>
The distance between tiles in pixels.
- tilePadding <number>
The distance from the edge of the tile to the content in pixels.
- tileContent <Object>
The object describing the parameters of the default tile.
type: 'image',
src: './images/1.jpg'
type: 'iframe',
src: 'https://www.youtube.com/embed/w1I-HWAP6N8?controls=0&showinfo=0'
type: 'video',
src: [
'./videos/index.mp4'
],
poster: './images/3.jpg'
type: 'audio',
src: [
'./audios/index.mp4'
],
poster: './images/4.jpg'
type: 'html',
html: 'Text',
poster: './images/5.jpg'
type: 'dom',
query: '#dfgdfhdhfghf',
poster: './images/6.jpg'
- tileAdaptiveSize <Object>
The distance describing adaptive tile sizes in grid units.
"imac": [2, 2],
"desktops-huge": [2, 2],
"desktops-big": [2, 2],
"desktops": [2, 2],
"base": [2, 2],
"tablet-landscape": [3, 3],
"tablet": [2, 2],
"phone-landscape": [1, 1],
"phone": [1, 1],
"small": [1, 1]
- tileAdaptiveMargin <Object>
The object describing adaptive indentation between the tiles.
"imac": 10,
"desktops-huge": 10,
"desktops-big": 10,
"desktops": 8,
"base": 6,
"tablet-landscape": 6,
"tablet": 4,
"phone-landscape": 3,
"phone": 2,
"small": 1
- tileAdaptivePadding <Object>
The object describing adaptive spacing from the edge to the content tiles.
"imac": 10,
"desktops-huge": 10,
"desktops-big": 10,
"desktops": 8,
"base": 6,
"tablet-landscape": 6,
"tablet": 4,
"phone-landscape": 3,
"phone": 2,
"small": 1
Example
new CSTiles(
document.body,
{
gridSize: 8,
tileMargin: 5,
tilePadding: 5,
tileContent: {
type: 'none'
},
adaptiveMedia: {
'imac': '2560-',
'desktops-huge': '1920-2560',
'desktops-big': '1600-1920',
'desktops': '1440-1600',
'base': '1280-1440',
'tablet-landscape': '1024-1280',
'tablet': '768-1024',
'phone-landscape': '480-768',
'phone': '320-480',
'small': '-320'
}
},
[
{
tileSize: [2, 2],
tileContent: {
type: 'tiles',
params: {
grid: {
gridSize: 8,
tileMargin: 0,
tilePadding: 0,
tileContent: {
type: 'none'
},
adaptiveMedia: {
'imac': '2560-',
'desktops-huge': '1920-2560',
'desktops-big': '1600-1920',
'desktops': '1440-1600',
'base': '1280-1440',
'tablet-landscape': '1024-1280',
'tablet': '768-1024',
'phone-landscape': '480-768',
'phone': '320-480',
'small': '-320'
}
},
tiles: [
{
tileSize: [2, 2],
tileContent: {
type: 'image',
src: './images/1.jpg'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'iframe',
src: 'https://www.youtube.com/embed/w1I-HWAP6N8?controls=0&showinfo=0'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'video',
src: [
'./videos/index.mp4'
],
poster: './images/3.jpg'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'audio',
src: [
'./audios/index.mp4'
],
poster: './images/4.jpg'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'image',
src: './images/5.jpg'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'image',
src: './images/8.jpg'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'image',
src: './images/9.jpg'
},
}
]
}
}
},
{
tileSize: [2, 2],
tileContent: {
type: 'image',
src: './images/1.jpg'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'iframe',
src: 'https://www.youtube.com/embed/w1I-HWAP6N8?controls=0&showinfo=0'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'video',
src: [
'./videos/index.mp4'
],
poster: './images/3.jpg'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'audio',
src: [
'./audios/index.mp4'
],
poster: './images/4.jpg'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'html',
html: 'Text',
poster: './images/5.jpg'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'dom',
query: '#dfgdfhdhfghf',
poster: './images/6.jpg'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'image',
src: './images/7.jpg'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'image',
src: './images/8.jpg'
},
},
{
tileSize: [2, 2],
tileContent: {
type: 'image',
src: './images/9.jpg'
},
}
]
);