我正在尝试为我的网页上的某个元素的不透明度实现一个jQuery滑块控件。
有点像this question但有滑块。
我想知道我应该如何实现这一点,因为我有点迷失,因为我应该如何开始......
我猜一个函数不是最好的,不是吗?定义一个函数,然后为滑块调用它?
对于这个主题,滑块控件的jQuery documentation对我来说有点过于复杂,但我相信你们中的一些人可以帮助澄清如何让这件事情发生!
对不起,这个问题有点模糊,但我不确定如何继续。
答案 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>
使用上面的滑块淡出...
`