Я хотел бы изменить ширину моей области холста Raphael в соответствии с изменением ширины окна браузера, но мой код не работал так, как я ожидал.Следующие коды показывают, что я пытался:
Моя index.html страница:
<body>
<div class="my-canvas">
<script src="js/jquery-1.5.1.js"></script>
<script src="js/raphael.js"></script>
<script src="js/myWin.js"></script>
<script src="js/myRaphaelApp.js"></script>
</body>
мой CSS определил начальный размер my-canvas:
.my-canvas {
width: 50%;
height:800;
}
У меня есть myWin.js , который может получить ширину текущего окна браузера и прослушать изменение размера окна браузера, вызвав функцию jQuery$(window).resize(...)
:
myWin.js
myWin = function(){
var width=$('.my-canvas').width()*0.5;
$(window).resize(function() {
width=$('.my-canvas').width()*0.5; //update the width as browser window size is changing
});
return {
getWidth: function(){
$(window).resize();
return width;
}
};
}();
Начать рендеринг Рафаэля здесь:
myRaphaelApp.js
myRaphaelApp = function(){
var width = myWin.getWidth(); //get the width of the current browser
return {
startRender: function(){
paper = Raphael("graph", width, height); //width is not updated...
var c = paper.rect(10, 10, 50, 50);
};
}();
Когда я запускаю свое приложение в окне браузера небольшого размера, рисуется круг, и холст рафаэля имеет ширину исходного окна просмотра браузера * 0,5затем я максимизирую окно браузера, я ожидал, что ширина холста моего рафаэля будет увеличиваться по мере увеличения окна браузера, но холст останется таким же, как и исходный размер.Где я не прав?