ユーザーがスライダーを呼び出して画像の外観を変更できるページがあります。スライダーは 1 つしか表示されませんが、合計で 10 個になる可能性があります。それぞれの js 関数を記述する代わりに、HTML5 data-
変数を使用して合理化しようとしています。
これは 2 つのスライダーの html で、一度に 1 つだけ表示されます。
<div class="editSliderHolder" id="brightness">
<label>Brightness</label>
<div class="editSlider" data-minVal="-20" data-maxVal="20" data-editValue="curValB"></div>
</div>
<div class="editSliderHolder" id="contrast">
<label>Contrast</label>
<div class="editSlider" data-minVal="-40" data-maxVal="40" data-editValue="curValC"></div>
</div>
そして私が試しているJQuery:
$(document).ready(function () {
var div = $("div.editSlider");
div.slider({
value: 0,
min: div.data("minVal"),
max: div.data("maxVal"),
slide: function (event, ui) {
//alert(min); // check if value set
div.data("editValue", ui.value);
$(this).find('.ui-slider-handle').text(Math.round(ui.value));
},
stop: function(event, ui) {
div.data("editValue", ui.value);
Caman('#capEdit', function () {
this.revert(); // restore canvas
this.contrast(curValC); // add contrast
this.brightness(curValB); // add brightness
this.render(); // render it
});
}
});
});
つまり、最小値と最大値が各スライダーに設定され、変更する効果 (この場合は輝度またはコントラスト) を決定する ui.value も設定されます。
値が設定されておらず、その理由がわかりません。これを行うためのより良い方法はありますか、それともこのコードは間違っていますか?