2012-06-12 3 views
1

Я пытаюсь собрать веб-страницу, которая будет содержать некоторые диаграммы, а также некоторые виджеты 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> 
+0

У меня все еще есть схожие проблемы. Это делает какие-то вычисления позиции, и они, по-видимому, ошибочны, если ваш макет более сложный, чем пустая страница ... – DanMan

ответ

0

Если разница между min и max неравномерно делится на дискретное значение, появляются нечетные смещения. Поскольку вы не устанавливаете min max, они по умолчанию равны 0 и 100. Это 101 значение, которое не равномерно делится на 11