用于不透明度的jQuery滑块控件

时间:2010-09-04 22:35:13

标签: jquery slider opacity

我正在尝试为我的网页上的某个元素的不透明度实现一个jQuery滑块控件。

有点像this question但有滑块。

我想知道我应该如何实现这一点,因为我有点迷失,因为我应该如何开始......

我猜一个函数不是最好的,不是吗?定义一个函数,然后为滑块调用它?

对于这个主题,滑块控件的jQuery documentation对我来说有点过于复杂,但我相信你们中的一些人可以帮助澄清如何让这件事情发生!

对不起,这个问题有点模糊,但我不确定如何继续。

2 个答案:

答案 0 :(得分:8)

我不确定您希望最终结果是什么,但这是一个控制页面上另一个元素的不透明度的滑块的简单示例。我在我的Javascript中包含了相关部分的注释。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Slider</title>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js"></script>
    <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.3/themes/base/jquery-ui.css" type="text/css"/>

    <script type="text/javascript">
        $(document).ready(function() {
            //Step 1: set up the slider with some options. The valid values for opacity are 0 to 1
            //Step 2: Bind an event so when you slide the slider and stop, the following function gets called
            $('#slider').slider({ min: 0, max: 1, step: 0.1, value: 1 })
                .bind("slidechange", function() {
                    //get the value of the slider with this call
                    var o = $(this).slider('value');
                    //here I am just specifying the element to change with a "made up" attribute (but don't worry, this is in the HTML specs and supported by all browsers).
                    var e = '#' + $(this).attr('data-wjs-element');
                    $(e).css('opacity', o)
                });
        });
    </script>
    <style type="text/css">
        #box { width: 200px; height: 200px; background-color: #ff0000; }
        #slider { width: 200px; }
    </style>
</head>
<body>
    <div id="slider" data-wjs-element="box"></div>
    <div id="box">
        <p>Fade with the above slider...</p>
    </div>
</body>
</html>

答案 1 :(得分:8)

这是一个很好的代码示例,但我稍微修改了上面的代码,滑块现在在开始滑动时立即改变不透明度,不透明度变得更加平滑。

    滑块               

<script type="text/javascript">
    $(document).ready(function() {
        //Step 1: set up the slider with some options. The valid values for opacity are 0 to 1
        //Step 2: Bind an event so when you slide the slider and stop, the following function gets called
        $('#slider').slider({ 
        min: 0, 
        max: 1, 
        step: 0.01, 
        value: 1,
        orientation: "vertical",
             slide: function(e,ui){
                     $('#box').css('opacity', ui.value)

             }                
        })
    });
</script>
<style type="text/css">
    #box { width: 200px; height: 200px; background-color: #ff0000; }
    #slider { width: 15px; }
</style>

                  

使用上面的滑块淡出...

     `