如何从 localStorage 设置 html5 滑块默认值?

发布于 2024-11-30 13:42:31 字数 641 浏览 1 评论 0原文

我使用纯 html5 滑块,如下所示:

<div>Brush Size:<input id="brush_size" type="range" value="10" min="1" max="100"/></div>
<div>Opacity: <input id="opacity" type="range" value="0.8" step="0.01" min="0.01" max="1.00"/></div>

然后将值保存到 localStorage onChange:

$("#brush_size").change(function(){
  localStorage['brush_size']=this.value; 
});
$("#opacity").change(function(){
  localStorage['opacity']=this.value; 
});

更改后,在下一个页面加载时,我希望看到当前的 localStorage 值,而不是 html 硬编码值。这样做的最佳方法是什么?

我想我可以在页面加载期间使用 jQuery 将滑块的值设置为 localStorage 值...这是最佳实践方法吗?

I'm using pure html5 sliders as such:

<div>Brush Size:<input id="brush_size" type="range" value="10" min="1" max="100"/></div>
<div>Opacity: <input id="opacity" type="range" value="0.8" step="0.01" min="0.01" max="1.00"/></div>

Then saving the values into localStorage onChange:

$("#brush_size").change(function(){
  localStorage['brush_size']=this.value; 
});
$("#opacity").change(function(){
  localStorage['opacity']=this.value; 
});

After changes, on the next page load I would like to see the current localStorage values, instead of the html hardcoded values. What's the best way of doing this?

I suppose I could set the slider's value to the localStorage values during page load using jQuery... is this the best-practices way of doing it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

百善笑为先 2024-12-07 13:42:31

只需将其添加到您的代码中即可

$("#brush_size").val(localStorage['brush_size']);
$("#opacity").val(localStorage['opacity']);

Just add this to your code

$("#brush_size").val(localStorage['brush_size']);
$("#opacity").val(localStorage['opacity']);
对你而言 2024-12-07 13:42:31

这应该足够了:

$(function ()
{
    var ids = ['brush_size', 'opacity' /* etc */],
        id,
        value;

    for (var i=0; i<ids.length; i++)
    {
        id = ids[i];
        value = localStorage[id];
        if (typeof value !== 'undefined')
        {
            $('#'+id).val(value);
        }
    }
});

旁注:您可能应该在 change 回调中使用 $(this).val() 而不是 this.value ,并且您可以使代码整体更加简洁:

$('#brush_size, #opacity').change(function ()
{
    localStorage[this.id] = $(this).val();
});

演示: http://jsfiddle.net/mattball/G59QH/(由 @David 提供) )

This should suffice:

$(function ()
{
    var ids = ['brush_size', 'opacity' /* etc */],
        id,
        value;

    for (var i=0; i<ids.length; i++)
    {
        id = ids[i];
        value = localStorage[id];
        if (typeof value !== 'undefined')
        {
            $('#'+id).val(value);
        }
    }
});

Side note: you should probably be using $(this).val() instead of this.value in the change callbacks, and you can make that code more concise overall:

$('#brush_size, #opacity').change(function ()
{
    localStorage[this.id] = $(this).val();
});

Demo: http://jsfiddle.net/mattball/G59QH/ (courtesy of @David)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文