Поймать в браузере & ldquo; zoom & rdquo; событие в JavaScript

Если вы хотите, чтобы сумма всех баров была равна единице, вес каждого бункера по общему количеству значений:

weights = np.ones_like(myarray)/float(len(myarray))
plt.hist(myarray, weights=weights)

Надеюсь, что это помогает, хотя поток довольно старый ...

148
задан user123093 15 June 2009 в 12:46
поделиться

2 ответа

Невозможно активно определить, есть ли зум. Я нашел здесь хорошую запись о том, как вы можете попытаться реализовать это.

Я нашел два способа обнаружения уровень масштабирования. Один из способов обнаружения увеличения изменение уровня зависит от того, что процентные значения не увеличиваются. А процентное значение относительно ширина области просмотра, поэтому на нее не влияют масштаб страницы. Если вы вставите два элемента, один с положением в процентах, и один с таким же положением в пикселей, они разойдутся, когда страница увеличена. Найдите соотношение между позиции обоих элементов и у вас есть уровень масштабирования. Посмотреть тест кейс. http://web.archive.org/web/20080723161031/http://novemberborn.net/javascript/page-zoom-ff3

Вы также можете сделать это с помощью инструментов из вышеупомянутой публикации. Проблема в том, что вы более или менее догадываетесь, увеличилась ли страница или нет. В некоторых браузерах это будет работать лучше, чем в других.

Невозможно определить, увеличена ли страница, если они загружают вашу страницу во время увеличения.

77
ответ дан 23 November 2019 в 22:02
поделиться

Я использую этот фрагмент JavaScript, чтобы реагировать на "события" Zoom.
Он опрашивает ширину окна. (Как несколько предложено на этой странице (на которую ссылается Ян Эллиотт): http://novemberborn.net/javascript/page-zoom-ff3 [архив])

Проверено с Chrome, Firefox 3.6 и Opera, но не с IE.

С уважением, Магнус

var zoomListeners = [];

(function(){
  // Poll the pixel width of the window; invoke zoom listeners
  // if the width has been changed.
  var lastWidth = 0;
  function pollZoomFireEvent() {
    var widthNow = jQuery(window).width();
    if (lastWidth == widthNow) return;
    lastWidth = widthNow;
    // Length changed, user must have zoomed, invoke listeners.
    for (i = zoomListeners.length - 1; i >= 0; --i) {
      zoomListeners[i]();
    }
  }
  setInterval(pollZoomFireEvent, 100);
})();
12
ответ дан 23 November 2019 в 22:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: