Je souhaite modifier le curseur de l'interface utilisateur JQuery d'origine afin que la poignée comporte une flèche plutôt qu'un carré. c’est-à-dire que je veux utiliser une image personnalisée comme descripteur.
Il y a quelques tutoriels qui le font:
Mais je ne peux pas le faire fonctionner. Le code suivant donne une image de poignée fixe:
<!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>
C'est comme si JQuery ne détectait pas que je voulais utiliser l'id myhandle pour le handle. Je me demande: ai-je besoin d'un plugin pour que JQuery reconnaisse l'option handle? (Cela n’est pas documenté dans http://docs.jquery.com/UI/Slider ). Ou peut-être que cela ne fonctionnait que dans une ancienne version de JQuery?
Des idées?
La classe CSS pouvant être modifiée pour ajouter une image au handle du curseur JQuery est appelée " .ui-slider-horizontal .ui-slider-handle ".
Le code suivant montre une démo:
<!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>
Je pense que l'enregistrement d'une option handle était l'ancienne méthode et qu'il n'était plus pris en charge dans JQuery-ui 1.7.2?
.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;
}
Si vous devez remplacer la poignée par quelque chose d’autre, plutôt que de la changer:
$('.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>
Vous devez également définir border:none
à cette classe css.
Cette modification concerne uniquement la première poignée du curseur multibranches. Dans apiDoc, vous pouvez voir: "Par exemple, si vous spécifiez des valeurs: [1, 5, 18] et créez un descripteur personnalisé, le plug-in créera les deux autres."