Я сделал тест, где каждый вопрос отображается в модальном виде. Тот же модальный, только содержимое внутри изменяется после каждого вопроса. Результат должен также отображаться в том же модальном виде. Чтобы показать результат, я использую progressbar.js (http://kimmobrunfeldt.github.io/progressbar.js/#examples). Вот как это выглядит в моем файле индекса:как запустить функцию при загрузке модального всплывающего окна (javascript, jquery)
function result() {
$('.progress1').css('display', 'block');
var startColor = '#FC5B3F';
var endColor = '#6FD57F';
var circle = new ProgressBar.Circle('.progress1', {
color: startColor,
easing: 'easeIn',
strokeWidth: 8,
trailWidth: 0,
duration: 2000,
text: {
value: '0',
style: {
color: '#000'
}
},
step: function(state, bar) {
bar.setText((bar.value() * 100).toFixed(0));
}
});
function rangeToPercent(number, min, max){
return ((number - min)/(max - min));
}
var value = rangeToPercent(counterAnswer, 0, counterQ)
// This will determine the circumference of the circle
circle.animate(value, {
from: {color: startColor},
to: {color: endColor},
step: function(state, circle, bar) {
circle.path.setAttribute('stroke', state.color);
console.log(circle);
circle.setText((circle.value() * 100).toFixed(0));
}
});
}
После того, как последний вопрос делается (если модальный пока не видно) меняю модальное содержание в
<h2 style='text-align: center; font-weight: bold;'>Your score is:</h3><br>
<div style='margin: auto;' class='progress1' value='0'></div>
и добавить новый класс модальный $('#myModalTest').addClass('result');
. В моем сценарии у меня есть: $(".result").on('shown.bs.modal', function() { result(); });
Но это не работает. Я попытался поставить result();
в setTimeOut
(и запустил его без $(".result").on('shown.bs.modal', function() {result();});
), но затем он запускается 4 раза, создавая 4 круга (я понятия не имею, почему). Пожалуйста, помогите.
Спасибо, но не работает ( – Prolomzzz