Я пытаюсь поместить холст Рафаэля в div, который меньше, чем фактический холст. Так что в основном у меня есть что-то вроде этого:
var paper = Raphael("test", 2000, 2000);
var a = paper.rect(0, 0, 2000, 2000).attr({fill: "#000"});
//
<div id="test" style="width: 500px; height: 500px; overflow: auto;"></div>
Кажется достаточно простым? У большинства браузеров с этим нет проблем, но IE7 заставляет весь прямоугольник 2000x2000 на экране игнорировать все ограничения div.
Я попытался поместить div в другой div следующим образом:
<div id="ieholder" style="width: 500px; height: 500px; overflow: auto;">
<div id="test" style="width: 2000px; height:2000px;"></div>
</div>
Но не повезло, случилось то же самое. Это можно обойти? это
Все это уже компромисс, так как я использую Raphael-ZPD, чтобы дать пользователям
функция масштабирования и панорамирования, но так как она не работает в IE, я подумал, что
просто дайте пользователям IE изображение с базовыми функциями панорамирования, но нет! Черт
ты IE!
http://jsfiddle.net/WdwGQ/
<div id="ieholder" style="width: 500px; height: 500px; overflow: auto;">
<div id="map" style="width: 2132px; height: 2872px;">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="2000" height="2000">
<desc>Created with Raphaël</desc>
<defs>
<rect x="0" y="0" width="2000" height="2000" r="0" rx="0" ry="0" fill="#000000" stroke="#000">
</svg>
</div>
</div>