2015-02-22 3 views
2

Я использую Vis.js для рисования сетевых диаграмм. Я хотел бы иметь возможность уведомления о том, что при получении AJAX-обновления для определенного узла холст перемещает этот узел в центр (который уже может видеть Vis.js), а затем имеет некоторый тип анимации bullseye над чтобы привлечь внимание пользователей, пока они не нажмут узел. Самый близкий пример к эффекту анимации, я ищу это в http://codepen.io/MateiGCopot/pen/ogEKRKАнимированный bullseye через узел Vis.js

var w = c.width = 400, 
h = c.height = 400, 
ctx = c.getContext('2d'), 

frame = 0; 

function anim(){ 
    window.requestAnimationFrame(anim); 

    ++frame; 

    for(var i = 0; i < w; ++i){ 
    ctx.strokeStyle = i%20 === 0 ? 'hsl(hue, 80%, 50%)'.replace('hue', 
     (360/(w/3) * i - frame) % 360 
    ) : 'rgba(0, 0, 0, .08)'; 
    ctx.beginPath(); 
    ctx.arc(w/2, h/2, (i + frame)%w/2, 0, Math.PI*2); 
    ctx.stroke(); 
    ctx.closePath(); 
    } 
} 
anim(); 

Является ли это лучший способ добиться такого эффекта? Запуск его на моей машине делает всплеск использования процессора, поэтому он не кажется таким эффективным.
Кроме того, как я могу интегрировать что-то вроде этого с помощью Vis.js, чтобы он рисовал узел изображения и останавливается при щелчке узла? Этот конкретный пример привлекает круги наружу, однако я бы хотел, чтобы они были обращены внутрь, но не могли понять, как изменить направление.

JavaScript не мой сильный сюита, ​​поэтому более подробное объяснение лучше. Кроме того, я не привязан специально к Vis.js, поэтому, если есть еще одна библиотека, которая уже имеет эту функциональность (наряду с сопоставимыми функциями Vis.js), я бы с ней был в порядке.

+0

Мне также интересно, как управлять содержимым узлов, такими как пользовательские анимации .js и чистый html. – tkelly

ответ

2

Я разработчик сетевого вида visjs. Это пока невозможно в публичном API. Мы работаем над версией 4.0, которая позволит вам легко вводить свой собственный код внутри renderloop. Если вам это нужно раньше (мы ожидаем 4.0 около апреля), пожалуйста, напишите о проблеме на нашей странице GitHub, и я могу помочь вам вставить ее в источник самостоятельно. Мы хотели бы сохранить все наши вопросы по GitHub, чтобы людям было легче найти ответы.

Редактировать: кроме того, вы можете, конечно, просто изменить цвет и использовать функции фокуса, чтобы сосредоточиться на узле. Но это был не ваш вопрос. Обходным путем может быть наложение div сверху на узел, где doc может иметь gif с анимацией и обработчиком кликов. Вы можете получить позицию указанного узла с помощью API API.

+0

Прохладный. Я могу подождать до апреля, так как сейчас я просто делаю некоторые PoC. Но мне нравится идея div gif или то, что я думал, это просто динамическое изменение свойства изображения узла. Недостаток заключается в том, что мне нужно два изображения для каждого типа узлов, которые я хочу отобразить анимацию, но с верхней стороны, я думаю, что это будет легко. То есть, если есть способ изменить изображение узла динамически. –

+0

Динамическое изменение можно изменить с помощью наборов данных vis. Мы планируем выпустить 4.0 примерно через 1 - 2 недели. Документация занимает гораздо больше времени, чем ожидалось! – Alexdm

+0

привет @ Alexdm.Is там какая-то документация доступна сейчас. – Shashank

Смежные вопросы