2014-06-07 5 views
24

Font Awesome hat eine sehr gute Sammlung von Icons für Webprojekte. Ich möchte eines dieser Symbole als Cursor verwenden (benutzerdefinierter Cursor).Font einstellen Super Icons als Cursor - ist das möglich?

In meinem Verständnis, Benutzerdefinierte Cursor benötigen eine Bild-URL, aber ich bin nicht in der Lage, die Bild-URLs für Font Awesome Symbole zu finden.

+0

ich glaube nicht, Sie Text/Schriftart für den Cursor festlegen. Sie müssen möglicherweise ein Bild mit dem Symbol, das Sie wollen, von Font Awesome, und dann verwenden Sie es für den Cursor mit 'Cursor: url (...)' –

+0

Ich denke, ich kann es, erstellen Sie zuerst eine Leinwand, dann zeichnen das fa-Symbol darauf, dann ändere es in ein Base-64-Bild, dann referenziere es. Ich versuche es zu programmieren, warte auf mich! –

+0

Es wäre schön, etwas von Ihrem vorhandenen Code zu sehen. –

Antwort

39

Verstanden!

  1. erstellen Leinwand
  2. die fa Symbol Malen es
  3. Wechsel in eine Base-64 Bild-URL
  4. Wenden Sie das Bild auf dem Cursor CSS Stil

Und ich gemacht eine Demo: http://jsfiddle.net/rqq8B/2/

// http://stackoverflow.com/questions/13761472/how-to-render-glyphs-from-fontawesome-on-a-canvas-element 
// http://stackoverflow.com/questions/13932291/css-cursor-using-data-uri 

$(function() { 
    var canvas = document.createElement("canvas"); 
    canvas.width = 24; 
    canvas.height = 24; 
    //document.body.appendChild(canvas); 
    var ctx = canvas.getContext("2d"); 
    ctx.fillStyle = "#000000"; 
    ctx.font = "24px FontAwesome"; 
    ctx.textAlign = "center"; 
    ctx.textBaseline = "middle"; 
    ctx.fillText("\uf002", 12, 12); 
    var dataURL = canvas.toDataURL('image/png') 
    $('body').css('cursor', 'url('+dataURL+'), auto'); 
}); 
+0

In der JSfiddle sehe ich das benutzerdefinierte Element Frame/Platzhalter, aber kein tatsächliches Element. Wie laden Sie die fontawesome Elemente? Mache ich das richtig? Muss ich den CDN-Link für die Fontawesome-Bibliothek hinzufügen? – zipzit

+0

"\ uf002" in FontAwesome steht für einen Platzhalter, ändern Sie das - sagen Sie "\ uf001" - Sie sollten einen anderen Cursor sehen. –

+0

Ich verstehe. Ich sehe jetzt die font-awesome.css in den externen Ressourcen am linken Rand. Was ich nicht sehe, sind Ergebnisse im JSFiddle. Ich sehe eine leere Box für einen Cursor. Hoppla. Aktualisieren. Funktioniert gut im Chrome-Browser, nur nicht in Firefox (Win7). Pfui. Ich hasse es, wenn die Dinge in einem Browser funktionieren, aber nicht in einem anderen. – zipzit

6

Am Ende konnte ich nicht ‚T bekommen @ fish_ball Code zuverlässig arbeiten, so dass ich nur downloaded the images, verwenden gimp zuschneiden und bearbeiten Sie sie auf 32 × 32px, und benutzen sie wie folgt aus:

.myClass { cursor: url('/static/img/pencil30_32x32.png') 1 30, crosshair } 

Der 1 30 Teil setzt den Mauszeiger‚Hotspot‘1px von links und 30px vom oberen Bildrand.

+1

An Wer auch immer meine Antwort verwarf: Es wäre hilfreich, wenn Sie die Anweisungen befolgt und einen Kommentar hinterlassen würden, der sagt, warum. Wenn Sie eine bessere Antwort haben, würde es jedem helfen, wenn Sie es gepostet haben. @fish_balls Code funktioniert nur in einigen Browsern Das Tag. –

9

Es gibt jQuery Awesome Cursor, wo Sie font-awesome Symbole auf Ihren Cursor durch den Aufruf nur einen einfachen Code hinzufügen:

$('body').awesomeCursor('pencil'); 

oder übergeben Sie einige Optionen:

$('body').awesomeCursor('pencil', { 
    /* your options here */ 
    size: 22, 
    color: 'orange', 
    flip: 'horizontal' 
}); 

Disclaimer: Ich bin NICHT der Autor dieser Bibliothek Ich habe es gerade gefunden.

+1

Ich werde hinzufügen, dass diese Bibliothek auch mit anderen Symbol Schriftarten funktioniert (ex. icomoon) – plong0

+1

Ich verbrachte etwa einen Tag R & D versucht die Lösungen auszuprobieren, die das Laden der Schriftart erzwingen sollen, und nichts funktioniert außer für die [jquery-awesome-cursor library] (https://jwarby.github.io/jquery-awesome-cursor/) – plong0

3

Die erwähnte Canvas-Methode führt zu verschwommenen Cursorn.

SVG bietet bessere Ergebnisse:

  • die SVG-Download für das Symbol, das Sie von Encharm's Font-Awesome-SVG-PNG verwenden möchten.
  • Bearbeiten der SVG einen Texteditor und geben Sie die Breite und Höhe mit Ihnen
    • zB verwenden möchten: 24 x 24
    • Denken Sie daran, es gibt in der Regel eine maximale Größe im Browser (128 x . 128 in Firefox)
  • Deklarieren Sie den Cursor in CSS, zB: cursor: url('/assets/img/volume-up.svg'), pointer;
+0

I wollte hervorheben, dass der Größenänderungsschritt erforderlich ist! – bakerhumadi

+0

SVG ist besser als Leinwand aus einer Reihe von Gründen .. SVG ist mehr deterministisch, während Leinwand Sie fragen müssen, "wurde das gezeichnet?", "Wenn ich die Größe änderte, wurde es neu gezeichnet?" – Funkodebat

Verwandte Themen