使用滑块来实现div的不透明度

时间:2015-05-16 04:53:26

标签: javascript jquery html css

我有一个滑块改变我的div的不透明度值有点麻烦。以下是我一直在使用的小提琴:https://jsfiddle.net/yfmLk1ad/1/



$('#bgopacity').on('slide', function(value) {
   $('.background-color').css({
       opacity: value * '.01'
   });
});

.background-color {
    width: 500px;
    height: 500px;
    background: red;
    opacity: .5;
}

<div class="background-color"></div>
<form>
    <label>Color Opacity</label>
    <input type="range" name="bgopacity" id="bgopacity" value="50" min="0" max="100" step="1" onchange="rangevalue.value=value">
    <output id="rangevalue">50</output>
</form>
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:10)

您必须使用change事件。并且像这个($(this).val()一样获取滑块的值,而不是作为参数传递。完成后,这将更新矩形以选择值。

&#13;
&#13;
// Opacity Slider
$('#bgopacity').on('change', function (value) {
    $('.background-color').css({
        opacity: $(this).val() * '.01'
    });
});
&#13;
.background-color {
    width: 500px;
    height: 500px;
    background: red;
    opacity: .5;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
    <label>Color Opacity</label>
    <input type="range" name="bgopacity" id="bgopacity" value="50" min="0" max="100" step="1" onchange="rangevalue.value=value">
    <output id="rangevalue">50</output>
</form>
<div class="background-color"></div>
&#13;
&#13;
&#13;

对于实时更新,您可以使用input事件。当值发生变化时会更新。

&#13;
&#13;
// Opacity Slider
$('#bgopacity').on('input', function (value) {
    $('.background-color').css({
        opacity: $(this).val() * '.01'
    });
});
&#13;
.background-color {
    width: 500px;
    height: 500px;
    background: red;
    opacity: .5;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
    <label>Color Opacity</label>
    <input type="range" name="bgopacity" id="bgopacity" value="50" min="0" max="100" step="1" onchange="rangevalue.value=value">
    <output id="rangevalue">50</output>
</form>
<div class="background-color"></div>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

首先,替换

$('#bgopacity').on('slide', function (){...});

$('#bgopacity').on('change', function (){..});  

而不是value使用$(this).val()

working