Pixastic ライブラリを使用して画像編集ツールを追加する作業を行っています。アイデアは、ユーザーが選択ボックスから必要な画像またはツールの側面を選択できるということです。ツールは選択ボックスの下に表示され (私はselect2を使用しています)、ユーザーはスライダーを介して編集できます。これが私がこれまでに持っているものです:
# This seeds the select2 options list
imageToolsList = [
{id: 'bl', text: 'Blur'}
{id: 'bc', text: 'Brightness/Contrast'}
{id: 'ca', text: 'Color Adjust (RGB)'}
...
]
#Creates a select box and calls imageTooler function when the value of the box is changed
$(".image_tools_select").each ->
$(@).select2
placeholder: "Select an adjustment tool."
data: imageToolsList
$(@).on("change", (i) ->
imageTooler JSON.stringify(
val: i.val
clipName: $(@).closest('.clip').attr('id')
)
)
# The function called on the value that the select box is changed to
imageTooler = (i) ->
imageData = jQuery.parseJSON(i)
iId = imageData.val
imageClipName = imageData.clipName
newTool = "<div id=#{iId}><label>#{iId}</label><div class='slider#{iId}'></div></div>"
$("##{imageClipName}").find(".imagetoolfields").append newTool
これは、ツールが選択されたときに、編集ツールの名前と選択ボックスの下に正しいスライダー div を追加することに成功しますが、私が本当に望むのは、その特定のツールと画像のスライダー関数を動的に作成することです (上に複数の画像があります)。それぞれ独自の編集ツールベルトを備えたページ)。「ぼかし」ツールで機能するスライダー関数は次のとおりです。
$('.sliderbl').slider
min: 0
max: 5
value: 0.5
step: 0.1
range: "min"
slide: (event, ui) ->
$("#img_snapshot_16").pixastic("blurfast", {amount:ui.value})
次のように imageToolsList を展開する方法はありますか。
imageToolsList = [
{id: 'bl', text: 'Blur', tool: $("##{imageClipName}").pixastic("blurfast", {amount:ui.value}), sliderVals: {min: 0, max: 5, value: 0.5, step: 0.1, range: "min"} }
...
]
imageTooler
次に、div およびスライダー div で行われているように、各ツールの jQuery スライダー関数を動的に作成します。