2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Dodaci za alguns, chamados rate, são fantásticos, porem eles são enormes, alguns não são estilizáveis, outros não são elementos de formulário, que possam ser enviados via post, and muitos outros details. Precisamos pensar que plugins são ferramentas para facilitar, eo uso destes são realmente needsários, porem também precisamos ter em mente que alguns plugins needitam funcionar em vários cenários, o que faz com que o dodatku seja uma coisa genéricaes conzisio convisio, konsekvence, e posljedica (novamente), sejam grande.
Por conta disso, resi mostrar uma solução muito simples, que pode ser facilmente adaptada por qualquer um, estilizada quase todos.
Usando como base um campo, podemos remove-lo e adicionar nosso rate personalizado, fazendo que o select vire um fallback caso algo ocorra errado
Korak 1: Criando O Javascript (JQuery)
Não à motivos ubjeđuje de não utilizarmos o Jquery, já que o mesmo se većina bastante estável e muito produtivo.
Abaixo mostro komentira que cada linha faz
// Odabir kontejnera $ ('. Quest.content [data-element]'). Svaki (funkcija (indeks, stavka) {// Ponovni izbor selektora za unos relacije i os elementos var selector = $ (item).data ('element'), stars_element = $ (''), select = $ (selektor), options = select.find ('option'), selected = select.find ('option: selected'); // Percorre kao što to rade opções select options.each (function (option_index, option) {// Adiciona uma estrela para cada opção var star = $ (''); stars_element.append (star); // Ao klika na estrela star.on ('klik', function () {// Oporavak ili odvažnost klikova var val = $ (this).data ('value'); // Uklanjanje stvarnog odabira za odabir i dodatak o odabiru klike odabira.find ('option'). attr ('selected', false); select.find ('option [value = "' + val + '"]'). attr ('selected', true); // Ukloni kao klase za odabir da estrela $ (stars_element). find ('. star'). removeClass ('selected'); var index = $ (this).index (), elements = $ (stars_element).find ('. star'); // Dodavanje i odabir à estrela korespondente e kao ante riores à ela za (i = 0; i <= indeks; i ++) {$ (stars_element).find ('. star: nth-child ('+(i+1)+')'). addClass ('selected'); }}); }); // Dodavanje elementa novo i uklanjanje antigo (odabir) select.after (stars_element); select.hide (); });
Korak 2: Trabalhando Com O CSS
Com tudo criado, o CSS -u ili mais facili. Podemos utilizar o que for mais comfortente. Estrelas, quadrados, barras. Poremos usar tambem sprites or the images isoladas. Podemos utilizar estilos sem imagens, enfim, vai da needidade de cada um. O važno je aqui é que podemos modificar conforme precisamos.
.ratestar.stars.star {display: inline-block; širina: 15px; visina: 15px; pozadina: #fff url (../ images/sprite.png) -2px -134px bez ponavljanja; margina-desno: 3px; kursor: pokazivač; }
.ratestar.stars.star.selected {
pozadina: #fff url (../ images/sprite.png) -23px -134px bez ponavljanja; }
Korak 3: Zaključite
Concluímos que o desempenho deste é muito bom, a facilidade de uso é melhor ainda. Caso o usuário não tenha JS habilitado, ele ainda poderá utilizar or normalmente