44

ストックJQueryUIスライダーを変更して、ハンドルが正方形ではなく矢印になるようにします。つまり、ハンドルとしてカスタム画像を使用したいと思います。

それを行ういくつかのチュートリアルがあります:

しかし、私はそれを機能させることができません。次のコードは、固定ハンドル画像になります。

<!DOCTYPE html>
<html>
<head>
  <link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
  <script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.slider.js"></script>
  <style type="text/css">
  #myhandle {position: absolute;z-index: 100;height: 25px;width: 35px;top: auto;background: url(http://stackoverflow.com/content/img/so/vote-arrow-down.png) no-repeat;}   
  </style>
  <script type="text/javascript">
  $(document).ready(function(){
    $("#slider").slider({handle: '#myhandle'});
  });
  </script>
</head>
<body>
<div id="slider"><div id="myhandle"></div></div>
</body>
</html>

ハンドルにmyhandleIDを使用したいのは、JQueryが検出しないかのようです。疑問に思っています:ハンドルオプションを認識するためにJQueryのプラグインが必要ですか?(http://docs.jquery.com/UI/Sliderには記載されていません)。それとも、古いバージョンのJQueryでしか機能しなかったのでしょうか。

何か案は?

4

5 に答える 5

49

JQueryスライダーハンドルに画像を追加するために変更できるCSSクラスは、「 。 ui-slider-horizo​​ntal.ui-slider-handle」と呼ばれます。

次のコードはデモを示しています。

<!DOCTYPE html>
<html>
<head>
  <link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
  <script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
  <script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.slider.js"></script>
  <style type="text/css">
  .ui-slider-horizontal .ui-state-default {background: white url(http://stackoverflow.com/content/img/so/vote-arrow-down.png) no-repeat scroll 50% 50%;}
  </style>
  <script type="text/javascript">
  $(document).ready(function(){
    $("#slider").slider();
  });
  </script>
</head>
<body>
<div id="slider"></div>
</body>
</html>

ハンドルオプションの登録は古い方法であり、JQuery-ui 1.7.2ではサポートされなくなったと思いますか?

于 2009-07-30T16:05:12.980 に答える
19
.ui-slider .ui-slider-handle{
    width:50px; 
    height:50px; 
    background:url(../images/slider_grabber.png) no-repeat; overflow: hidden; 
    position:absolute;
    top: -10px;
    border-style:none; 
}
于 2010-08-04T02:07:40.210 に答える
15

ハンドルのスタイルを変更するだけでなく、ハンドルを完全に別のものに置き換える必要がある場合は、次のようにします。

要素を作成して追加し、初期化の前にui-slider-handleクラスを追加することで、カスタムハンドル要素を指定できます。

実例

$('.slider').append('<div class="my-handle ui-slider-handle"><svg height="18" width="14"><path d="M13,9 5,1 A 10,10 0, 0, 0, 5,17z"/></svg></div>');

$('.slider').slider({
  range: "min",
  value: 10
});
.slider .ui-state-default {
  background: none;
}
.slider.ui-slider .ui-slider-handle {
  width: 14px;
  height: 18px;
  margin-left: -5px;
  top: -4px;
  border: none;
  background: none;
}
.slider {
  height: 10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://code.jquery.com/ui/1.9.1/jquery-ui.min.js"></script>
<link href="https://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css" rel="stylesheet" />
<div class="slider"></div>

于 2014-02-11T18:31:15.450 に答える
3

border:noneまた、そのcssクラスに設定する必要があります。

于 2010-06-08T02:36:28.713 に答える
0

この変更は、マルチハンドルスライダーの最初のハンドルのみを変更します。apiDocでは、次のように表示されます。「たとえば、値[1、5、18]を指定し、1つのカスタムハンドルを作成すると、プラグインは他の2つを作成します。」

于 2016-02-09T08:30:31.143 に答える