Интересное

Проверено

VDS-хостинг - именно на этом хостинге работает наш сайт.
Sape - биржа временных ссылок, доход 80р/день.
Trustlink - биржа временных ссылок, доход 60р/день.

Партнеры

Последние сообщения с форума

Название темы Автор Статистика Последнее сообщение
продажа аккаунтов разных сервисов

Тема в разделе: Услуги и сервисы ваших web-сайтов

Sdelkin

Просмотров: 184673

Ответов: 26

Автор: Sdelkin

3-02-2018, 18:55

хостинг от M-HOSTER

Тема в разделе: Хостинг

wmmax

Просмотров: 58013

Ответов: 0

Автор: wmmax

1-02-2018, 15:42

Комплексное продвижение (прогон) сайтов ру и en

Тема в разделе: Поисковая оптимизация

Kysovue

Просмотров: 145769

Ответов: 73

Автор: Kysovue

25-01-2018, 21:16

Special offer! SSD NVMe хостинг, Выделенный сервер и VPS SSD

Тема в разделе: Хостинг

iphoster

Просмотров: 61574

Ответов: 0

Автор: iphoster

10-11-2017, 22:56

продвижение сайтов, прогоны

Тема в разделе: Поисковая оптимизация

brig2

Просмотров: 78562

Ответов: 7

Автор: brig2

5-11-2017, 14:00

Как найти центр элемента при помощи JavaScript

В последнем проекте я работал над картой (изображением), которое было поделено на области. Задача сводилась к тому, что я должен был найти центр каждой из этих областей.

Готового решения я не нашёл, поэтому пришлось писать своё. Это оказалось не так уж сложно.

Функция принимает два параметра:

Фигура – тип фигуры (круг, квадрат и т.д.)

Координаты – список разделённый запятыми

Все данные передаются в виде текста.

Сам метод:

function getAreaCenter(shape, coords) {
    var coordsArray = coords.split(','),
        center = [];
    if (shape == 'circle') {
        // для окрудности одни вычисения
        center = [coordsArray[0], coordsArray[1]];
    } else {
        // для квадрата другие
        var coord,
            minX = maxX = parseInt(coordsArray[0], 10),
            minY = maxY = parseInt(coordsArray[1], 10);
        for (var i = 0, l = coordsArray.length; i < l; i++) {
            coord = parseInt(coordsArray[i], 10);
            if (i%2 == 0) {
                if (coord < minX) {
                    minX = coord;
                } else if (coord > maxX) {
                    maxX = coord;
                }
            } else {
                if (coord < minY) {
                    minY = coord;
                } else if (coord > maxY) {
                    maxY = coord;
                }
            }
        }
        center = [parseInt((minX + maxX) / 2, 10), parseInt((minY + maxY) / 2, 10)];
    }
    return(center);
}


Функция возвращает массив из двух значений – точка X и Y. Пример вызова метода:

var area = document.getElementById('area-1');
var center = getAreaCenter(area.getAttribute('shape'), area.getAttribute('coords'));
alert('X-center: ' + center[0] + ', Y-center: ' + center[1]);


В моём случае, я прошёл по элементу area и собрал нужные мне координаты.

Надеюсь, информация была вам полезна.

Другие новости по теме: