如何在图像下方放置jqueryui滑块

时间:2017-08-30 14:36:11

标签: html5 css3 jquery-ui jquery-ui-slider

我正在尝试构建一个范围滑块来选择地质时间间隔,因此需要一个范围滑块准确定位在图像下方。我几乎得到了这个工作,事实上我有一个版本,只要我不包含声明,否则滑块坚决地保持在图像上方 - 这也是它在jsfiddle中的作用。我可能把css搞砸了,但是一些建议会非常受欢迎 - 一个好的解决方案可以广泛应用。

这里有一个jsfiddle jsfiddle of timescale selctor

HTML

$(document).ready(function() {
var gettop, getbase; 
gettop=12; getbase=50;

 $( "#geoslider-range" ).slider({
  range: true, min: 0, max: 210,
  values: [gettop, getbase ],
  slide: function( event, ui ) {
  $ ( "#top" ).val( ui.values[ 0 ]);
    $ ( "#base" ).val( ui.values[ 1 ]);
    $( "#amount" ).val( ui.values[ 0 ] + "Ma - " + ui.values[ 1 ] +"Ma" );
  } });
//output the values
$ ( "#top" ).val( $( "#geoslider-range" ).slider( "values", 0));
$ ( "#base" ).val( $( "#geoslider-range" ).slider( "values", 1)); 
$( "#amount" ).val( $( "#geoslider-range" ).slider( "values", 0 ) +
  "Ma - " + $( "#geoslider-range" ).slider( "values", 1 ) + "Ma" ); 
} );

JS

    /* size of the box and positioning of slider over image */
.geoframe {
    width: 850px;
    height: 230px;
    position: relative;
    display: block;
    background-color: white;
    border: 0 solid yellow;
    margin-bottom: 10px;
    }

.sliderpos_inframe {
    position: absolute;
    top: 20px;
    bottom: 20px;
    left: 25px;
    right: 25px;
    background-color: white;
    }

#tscaleimage {
    width: 100%;
   position: absolute;
 top: 0;
 }
   /* vertical position  */
 #geoslider-range .ui-slider {
    position: relative;
    top: 165;
    z-index: 2;
    text-align: left;
}

 #geoslider-range .ui-slider-handle {
      background: url(http:www.mikrotax.org/Nannotax3/graphics/slider4.png)  no-repeat;
      border: none;
    position: absolute;
    top: -148px;
    margin-left: -17px;
    z-index: 3;
    width: 35px;
    height: 175px;
    cursor: default;
    outline: 0 none;
}

/* the coloured box indicating range selected */
#geoslider-range .ui-slider-range {
    position: absolute;
    z-index: 2;
    font-size: 2em;
    display: block;
    border: 0;
    background-position: 0 0;
    top: 0%;
    height: 100%;
}

CSS

{{1}}

1 个答案:

答案 0 :(得分:1)

我刚刚更改了标记和CSS。请在下面找到它们:

HTML

<body>
    <b>AGE WINDOW TO SEARCH WITHIN</b>
    <p>Current window
        <input type="text" name="amount" id="amount" style="border:0; color:#f6931f; font-weight:bold;">
        <div class="geoframe">
            <div class="sliderpos_inframe">
                <img id="tscaleimage" src="http:www.mikrotax.org/Nannotax3/graphics/timescale-narrow-rotated.png" />
            </div>
        </div>
        <div id="geoslider-range"></div>
    </p>
</body>

CSS

/* size of the box and positioning of slider over image */

.geoframe {
    width: 850px;
    height: 230px;
    position: relative;
    display: block;
    background-color: white;
    border: 0 solid yellow;
    margin-bottom: 10px;
}

.sliderpos_inframe {
    position: absolute;
    top: 20px;
    bottom: 20px;
    left: 25px;
    right: 25px;
    background-color: white;
}

#tscaleimage {
    width: 100%;
    position: absolute;
    top: 0;
}


/* vertical position  */

#geoslider-range {
    position: relative;
    top: -50px;
    text-align: left;
    left: 25px;
}

#geoslider-range .ui-slider-handle {
    background: url(http:www.mikrotax.org/Nannotax3/graphics/slider4.png) no-repeat;
    border: none;
    position: absolute;
    top: -148px;
    margin-left: -17px;
    z-index: 3;
    width: 35px;
    height: 175px;
    cursor: default;
    outline: 0 none;
}


/* the coloured box indicating range selected */

#geoslider-range .ui-slider-range {
    position: absolute;
    z-index: 2;
    font-size: 2em;
    display: block;
    border: 0;
    background-position: 0 0;
    top: 0%;
    height: 100%;
}

希望这适合你。

结果是:

enter image description here

PS:我真的很喜欢你的滑块应用! :)