Ok, j'utilise donc Jquery UI Selectable pour mettre en surbrillance certaines cellules d'une table. Je voudrais être en mesure d'ajouter une bordure autour des cellules en surbrillance en utilisant comme une bordure 2px. De cette façon, chaque fois que vous mettez une section en surbrillance, vous pouvez indiquer la séparation entre chaque section mise en surbrillance. J'espère également pouvoir atteindre ce résultat avec des sections qui se chevauchent.Contour des cellules de la table sélectionnable de l'interface utilisateur Jquery
J'ai fait pas mal de lecture et je n'ai pas vraiment vu quelqu'un essayer de le faire pour le moment. Je me demande donc si quelqu'un pourrait me pointer dans la bonne direction sur la façon d'obtenir cet effet.
Voici un fiddle de mon exemple et un code ci-dessous.
var shadeColor = $(".color-pallet > .active").css("background-color");
applySelectable = function() {
$(".block-tools > .shade-btn").click(function() {
var $this = $(this);
if (!$this.hasClass("active")) {
$this.siblings().removeClass("active");
$this.addClass("active");
}
});
$(".color-pallet > span").click(function() {
var $this = $(this);
if (!$this.hasClass("active")) {
$this.siblings().removeClass("active");
$this.addClass("active");
shadeColor = $(this).css("background-color");
}
});
// keep selected shade color selected after new question
if (shadeColor !== $(".color-pallet > .active")) {
$(".color-pallet > span").filter(function(){
var color = $(this).css("background-color");
if (color === shadeColor) {
$(this).click();
};
});
}
$(".blocks").bind("mousedown", function(e) {
e.metaKey = true;
}).selectable({
filter: "td",
selecting: function (event, ui) {
if ($('.block-shade').hasClass("active")) {
$(ui.selecting).addClass('marked').css("background-color", shadeColor);
} else {
$(ui.selecting).removeClass('marked').css("background-color", "");
}
userAns = $('.marked').length+"";
}
});
};
applySelectable();
Merci d'avance pour votre temps.
EDIT: Pour les points bonus, quelqu'un peut-il me dire quand je fais glisser une sélection, pourquoi la hauteur des conteneurs augmente-t-elle et crée-t-elle une barre de défilement? Cela m'a sérieusement dérangé pendant un certain temps et j'ai choisi de l'ignorer mais je suppose que pendant que je suis ici peut-être que quelqu'un pourrait l'expliquer aussi?
Intéressant ... Quand la bordure doit être appliquée? Quel événement? débordement caché; au corps, html, pour supprimer les barres de défilement. :) – sinisake
La bordure doit être appliquée pendant le glissement pendant que les éléments sont en surbrillance. Et overflow: hidden a trop de sens haha je vais l'ajouter dedans, merci: D – xxstevenxo
Pour être plus spécifique, la bordure doit être appliquée lors de "selection:" pendant que la classe de surbrillance est appliquée. et je supposé serait ajusté/corrigé si l'utilisateur utilise le bouton "Unshade" après l'achèvement. Cela commence à paraître un peu complexe maintenant que je l'écris – xxstevenxo