Я только что столкнулся с той же проблемой сегодня - не на мобильном телефоне, а с небольшим размером окна при загрузке первой страницы. Когда страница загружается, диаграмма скрывается, затем после некоторого выбора на странице мы создаем диаграмму. Мы установили минимальную ширину и максимальную ширину для контейнера в CSS, но не ширину.
При создании диаграммы необходимо определить размеры для создания SVG. Поскольку диаграмма скрыта, она не может правильно определить размеры, поэтому код клонирует контейнер диаграммы, размещает его вне экрана и добавляет его к телу, чтобы он мог определить высоту / ширину.
Так как ширина не установлена, клонированный div пытается занять как можно больше места - до максимальной ширины, которую я установил. Элементы SVG создаются с использованием этой ширины, но добавляются в контейнер контейнера диаграммы, который в настоящее время меньше (в зависимости от размера экрана). В результате диаграмма выходит за границы контейнера.
После того, как диаграмма отображается в первый раз, экранные размеры известны, и функция клонирования не вызывается. Это означает, что изменение размера любого окна или перезагрузка данных диаграммы приводит к правильному размеру диаграммы.
Я справился с этой проблемой начальной загрузки, переопределив функцию Highcharts cloneRenderTo
, которая клонирует div для получения измерений:
(function (H) {
// encapsulated variables
var ABSOLUTE = 'absolute';
/**
* override cloneRenderTo to get the first chart display to fit in a smaller container based on the viewport size
*/
H.Chart.prototype.cloneRenderTo = function (revert) {
var clone = this.renderToClone,
container = this.container;
// Destroy the clone and bring the container back to the real renderTo div
if (revert) {
if (clone) {
this.renderTo.appendChild(container);
H.discardElement(clone);
delete this.renderToClone;
}
// Set up the clone
} else {
if (container && container.parentNode === this.renderTo) {
this.renderTo.removeChild(container); // do not clone this
}
this.renderToClone = clone = this.renderTo.cloneNode(0);
H.css(clone, {
position: ABSOLUTE,
top: '-9999px',
display: 'block' // #833
});
if (clone.style.setProperty) { // #2631
clone.style.setProperty('display', 'block', 'important');
}
doc.body.appendChild(clone);
//SA: constrain cloned element to width of parent element
if (clone.clientWidth > this.renderTo.parentElement.clientWidth){
clone.style.width = '' + this.renderTo.parentElement.clientWidth + 'px';
}
if (container) {
clone.appendChild(container);
}
}
}
})(Highcharts);
Я сохранил эту функцию в отдельном файле сценария, который загружается после Highchart Загрузился скрипт .js.
SQL 2005 SSMS хранит свои настройки в
HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\90\Tools\Shell
SQL 2008 SSMS сохраняет свои настройки в
HKEY_CURRENT_USER\Software\Microsoft\Microsoft SQL Server\100\Tools\Shell