Я пытаюсь собрать веб-страницу, которая будет содержать некоторые диаграммы, а также некоторые виджеты RangeSlider для управления диапазонами данных и детализацией диаграмм. Я создал несколько элементов для хранения различных элементов навигации, и я нахожусь там, где хочу разместить свои RangeSliders. Все работает, за исключением того, что, когда я нажимаю на заштрихованную панель между ручками, чтобы перемещать обе ручки влево или вправо, ручки переходят к правому концу ползунка и остаются там.dojo RangeSlider Handles Positioned Wrong
Я уверен, что это связано с несовместимостью между абсолютным/относительным позиционированием Div и компонентами слайдера, но я схожу с ума, пытаясь заставить его работать. Если я просто поставлю слайдер ни с одним из моих стилей div, слайдер работает, но не там, где я его хочу.
Весь файл указан ниже. Это всего около 80 строк, включая мою информацию о стилизации. Я приложил его к divs, а не рисовал его из внешнего .css-файла, для простоты. Чтобы попробовать это, вам нужно будет настроить пути к компонентам додзё.
Кто-то, у кого больше времени, чем у меня, может, возможно, разобраться в этом, но я не могу смириться с требованиями к доджо с моим собственным.
Спасибо.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Errlog Chart for Single Host</title>
<style type="text/css">
@import "1.7.src/dojo/resources/dojo.css";
@import "1.7.src/dijit/themes/tundra/tundra.css";
@import "1.7.src/dijit/themes/dijit.css";
@import "1.7.src/dijit/tests/css/dijitTests.css";
@import "1.7.src/dojox/form/resources/RangeSlider.css";
</style>
<script type="text/javascript" src="1.7.src/dojo/dojo.js" djConfig="isDebug:true, parseOnLoad: true"></script>
<script type="text/javascript">
dojo.require("dojox.form.RangeSlider");
dojo.require("dijit.form.HorizontalRule");
dojo.require("dijit.form.HorizontalRuleLabels");
</script>
</head>
<body class="tundra">
<div id='header' style="width:100%;
background: #FC8;
position: absolute;
height: 30px;
top: 0;">header</div>
<div id='middle' style="width:100%;
background: #8FC;
position: absolute;
top: 30px;
bottom: 30px;">
<div id='left' style="background: #C8F;
position: absolute;
left: 0;
top: 0;
width: 25%;
height: 100%;">
</div>
<div id='right' style="background: #CF8;
position: absolute;
left: 25%;
top: 0;
width: 75%;
height: 100%;">
<div id='charts' style="background: #DF7;
position: absolute;
width: 100%;
top:0;
height:60%;">
CHARTS GO HERE
</div>
<div id='sliders' style="background: #BF9;
position: absolute;
width: 100%;
bottom:0;
height:40%;">
SLIDERS GO HERE
<div
id="hrSlider"
discreteValues="11"
onChange="dojo.byId('minValue').value=dojo.number.format(arguments[0][0]/100,{places:1,pattern:'#%'});dojo.byId('maxValue').value=dojo.number.format(arguments[0][1]/100,{places:1,pattern:'#%'});"
value="20,80"
intermediateChanges="true"
style="width:500px;"
dojoType="dojox.form.HorizontalRangeSlider">
<ol dojoType="dijit.form.HorizontalRuleLabels" container="topDecoration" style="height:1.2em;font-size:75%;color:gray;" count="11" constraints="{pattern:'#.00%'}"></ol>
<div dojoType="dijit.form.HorizontalRule" container="topDecoration" count=11 style="height:10px;margin-bottom:-5px;"></div>
</div>
Horizontal Slider Min Value:<input readonly id="minValue" size="10" value="20.0%"/><br/>
Horizontal Slider Max Value:<input readonly id="maxValue" size="10" value="80.0%"/><br/>
</div>
</div>
</div>
<div id='footer' style="width:100%;
background: #8CF;
position: absolute;
height: 30px;
bottom: 0;">footer</div>
<script type="text/javascript">
</script>
</body>
</html>
У меня все еще есть схожие проблемы. Это делает какие-то вычисления позиции, и они, по-видимому, ошибочны, если ваш макет более сложный, чем пустая страница ... – DanMan