(为什么)jQuery让我的滑块看起来很胖?

时间:2009-10-24 01:22:48

标签: jquery jquery-ui

我正在自学jQuery并使用滑块控件从jquery-ui开始。我把它连接起来并在功能上运行良好,当我滑动手柄时设置一些全局页面变量。但是,它看起来不像jquery-ui演示页面上的滑块。

这是一个水平滑块,我可以通过设置jquery-ui转换为滑块的CSS width属性来控制条的长度。但是条形图比演示页面上的条纹厚两到三倍,并且滑块手柄比例更大。它看起来不错,但不如演示页面那样好。

将宽度设置作为提示,我尝试设置底层的CSS高度属性。这改变了条形部分的高度,但不是现在看起来特别大的手柄。

以下是标题:

<head>
    <title>The Memory Game</title>
    <link href="css/smoothness/jquery-ui-1.7.2.custom.css" rel="stylesheet" type="text/css" />
    <link href="css/memoryGame.css" rel="stylesheet" type="text/css" />
    <script src="js/jquery-1.3.2.min.js" type="text/javascript"></script>
    <script src="js/jquery-ui-1.7.2.custom.min.js" type="text/javascript"></script>
    <script src="js/memoryGame.js" type="text/javascript"></script>
</head>

以下是HTML标记:

<div id="control-panel"  class="ui-state-default">
<div id="slider" style="width: 150px"></div>
</div>

这是我的控制面板CSS:

div#control-panel {
padding:    10px;
float:      right;
}

这是我应用滑块的jQuery:

$('#slider').slider({
    max: 10000,
    value: waitTime,
    change: function(event, ui) {
        waitTime = ui.value;
        fadeTime = waitTime / 3;
    }
});

有人可以建议我如何缩放滑块的厚度,或至少获得jquery-ui演示页面上显示的相同厚度?

2 个答案:

答案 0 :(得分:8)

滑块大小由'font-size'css属性控制。您想减少父元素的字体大小。

答案 1 :(得分:6)

所有jQuery UI小部件都与theming instructions相关联。滑块小部件的说明提到了分配给滑块手柄的某些CSS类。

查看jquery-ui.css(或ui.slider.css,如果您使用的是开发包),您可以看到默认的CSS类似于:

.ui-slider .ui-slider-handle {
  width: 1.2em;
  height: 1.2em;
}
.ui-slider-horizontal .ui-slider-handle { 
  top: -0.3em;
  margin-left: -0.6em;
}

您可以覆盖这些CSS规则以创建任何大小的句柄。

修改

我在此处制作了基本滑块功能:http://jsbin.com/otika3(可通过http://jsbin.com/otika3进行编辑)。请尝试在http://jsbin.com上重现您的问题并与我们分享公开链接。

完整来源:

<!doctype html>
<html>
<head>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
  <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/themes/base/jquery-ui.css" type="text/css" />
  <script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js"></script>
  <title>http://stackoverflow.com/questions/1616675</title>
  <style type="text/css" media="screen">
    html, body, #content { height: 100%; }
    body { background-color: #000; font-size: 62.5%; color: #fff; }
    #content { width: 700px; margin: 0 auto; border: 1px solid white; padding: 1em;}
    #slider { width: 200px; }
  </style>
</head>
<body>
  <div id="content">
    <div id="slider"></div>
  </div>
  <script>
    $('#slider').slider();
  </script>
</body>