15.03.2015, 16:03
|
Новичок на форуме
|
|
Регистрация: 15.03.2015
Сообщений: 7
|
|
Отложенный запуск скрипта
Есть скрипт вывода диаграмм - CanvasJS, для отложенного запуска использую viewportChecker, то есть что бы скрипт запускался когда страница прокручивается до нужного элемента. Проблема в том что в таком виде (ниже пример) скрипт не работает, но если записать его например в custom.js и подключить файл то работает как надо, в чем может быть проблема?
<script>
jQuery('.chart').viewportChecker({
classToAdd: 'animated fadeIn',
offset: 100,
callbackFunction: function(elem, action){
jQuery(document).ready(function(){
var chart = new CanvasJS.Chart("chartContainerPie2",
{
animationEnabled: true,
legend:{
verticalAlign: "bottom",
horizontalAlign: "center"
},
data: [
{
type: "pie",
toolTipContent: "{legendText}: <strong>{y}%</strong>",
indexLabel: "{label} {y}%",
dataPoints: [
{ y: 35, legendText },
{ y: 20, legendText },
{ y: 18, legendText },
{ y: 15, legendText },
{ y: 5, legendText },
{ y: 7, legendText }
]
}
]
});
chart.render();
}
)},
});
</script>
<div class="chart" id="chartContainerPie2" style="height: 300px; float: left;width: 60%;"></div>
|
|
15.03.2015, 16:44
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
akefa,
строка 6 должна быть максимум нулевой
|
|
15.03.2015, 17:07
|
Новичок на форуме
|
|
Регистрация: 15.03.2015
Сообщений: 7
|
|
В таком варианте вообще отказывается работать (
|
|
15.03.2015, 17:21
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
akefa,
строки 31 и и часть 32 вы тоже пренесли вниз?
|
|
15.03.2015, 17:23
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
akefa,
jQuery(document).ready(function() {
jQuery('.chart').viewportChecker({
classToAdd: 'animated fadeIn',
offset: 100,
callbackFunction: function(elem, action) {
var chart = new CanvasJS.Chart("chartContainerPie2", {
animationEnabled: true,
legend: {
verticalAlign: "bottom",
horizontalAlign: "center"
},
data: [{
type: "pie",
toolTipContent: "{legendText}: <strong>{y}%</strong>",
indexLabel: "{label} {y}%",
dataPoints: [{
y: 35,
legendText
}, {
y: 20,
legendText
}, {
y: 18,
legendText
}, {
y: 15,
legendText
}, {
y: 5,
legendText
}, {
y: 7,
legendText
}]
}]
});
chart.render();
}
})
});
Последний раз редактировалось рони, 15.03.2015 в 17:25.
|
|
15.03.2015, 17:52
|
Новичок на форуме
|
|
Регистрация: 15.03.2015
Сообщений: 7
|
|
Да, именно так и сделал, и перестало все вовсе отображаться
|
|
15.03.2015, 17:54
|
Новичок на форуме
|
|
Регистрация: 15.03.2015
Сообщений: 7
|
|
Полный код графика, так он работает в тегах <script> но мне нужно что бы он запускался viewportChecker ом в этих тегах, но почему то выше приведенный код работает только если подгрузить его через custom.js
<script type="text/javascript">
window.onload = function () {
var chart = new CanvasJS.Chart("chartContainer",
{
title:{
text: "Try Various Chart Types"
},
data: [
{
type: "column", //change type to bar, line, area, pie, etc
dataPoints: [
{ x: 10, y: 71 },
{ x: 20, y: 55},
{ x: 30, y: 50 },
{ x: 40, y: 65 },
{ x: 50, y: 95 },
{ x: 60, y: 68 },
{ x: 70, y: 28 },
{ x: 80, y: 34 },
{ x: 90, y: 14}
]
}
]
});
chart.render();
}
</script>
|
|
15.03.2015, 18:00
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,123
|
|
akefa,
консоль смотрели на предмет ошибок
|
|
15.03.2015, 18:06
|
Новичок на форуме
|
|
Регистрация: 15.03.2015
Сообщений: 7
|
|
Когда подгружаю через custom.js - в консоле все чисто.
Если между тегами <script> - в консоле ошибка "Uncaught TypeError: undefined is not a function", в строке jQuery('.chart2').viewportChecker({
|
|
15.03.2015, 18:08
|
Новичок на форуме
|
|
Регистрация: 15.03.2015
Сообщений: 7
|
|
полный код
<script>
jQuery('.chart2').viewportChecker({
classToAdd: 'animated fadeIn',
offset: 100,
callbackFunction: function(elem, action){
jQuery(document).ready(function(){
var chart = new CanvasJS.Chart("chartContainerPie2",
{
animationEnabled: true,
legend:{
verticalAlign: "bottom",
horizontalAlign: "center"
},
data: [
{
type: "pie",
toolTipContent: "{legendText}: <strong>{y}%</strong>",
indexLabel: "{label} {y}%",
dataPoints: [
{ y: 35, legendText: "Маркетинг", exploded: true, label: "Маркетинг" },
{ y: 20, legendText: "Менеджмент", exploded: true, label: "Менеджмент" },
{ y: 18, legendText: "Бизнес план", exploded: true, label: "Бизнес план" },
{ y: 15, legendText: "Товар", exploded: true, label: "Товар"},
{ y: 5, legendText: "Идея", label: "Идея" },
{ y: 7, legendText: "Реализация", label: "Реализация"}
]
}
]
});
chart.render();
}
)},
});
</script>
<div class="chart2 animated" id="chartContainerPie2" style="height: 300px; float: left;width: 60%;"></div>
|
|
|
|