CSS for grabbing cursors (drag & drop)

后端 未结 7 975
一整个雨季
一整个雨季 2020-11-30 20:05

I have a JavaScript webapp where the user needs to grab the background to move the whole screen around. So I want the cursor to change when they\'re hovering over the backg

相关标签:
7条回答
  • 2020-11-30 20:30

    "more custom" than CSS cursors means a plugin of some type, but you can totally specify your own cursors using CSS. I think this list has what you want:

    .alias {cursor: alias;}
    .all-scroll {cursor: all-scroll;}
    .auto {cursor: auto;}
    .cell {cursor: cell;}
    .context-menu {cursor: context-menu;}
    .col-resize {cursor: col-resize;}
    .copy {cursor: copy;}
    .crosshair {cursor: crosshair;}
    .default {cursor: default;}
    .e-resize {cursor: e-resize;}
    .ew-resize {cursor: ew-resize;}
    .grab {cursor: grab;}
    .grabbing {cursor: grabbing;}
    .help {cursor: help;}
    .move {cursor: move;}
    .n-resize {cursor: n-resize;}
    .ne-resize {cursor: ne-resize;}
    .nesw-resize {cursor: nesw-resize;}
    .ns-resize {cursor: ns-resize;}
    .nw-resize {cursor: nw-resize;}
    .nwse-resize {cursor: nwse-resize;}
    .no-drop {cursor: no-drop;}
    .none {cursor: none;}
    .not-allowed {cursor: not-allowed;}
    .pointer {cursor: pointer;}
    .progress {cursor: progress;}
    .row-resize {cursor: row-resize;}
    .s-resize {cursor: s-resize;}
    .se-resize {cursor: se-resize;}
    .sw-resize {cursor: sw-resize;}
    .text {cursor: text;}
    .url {cursor: url(https://www.w3schools.com/cssref/myBall.cur),auto;}
    .w-resize {cursor: w-resize;}
    .wait {cursor: wait;}
    .zoom-in {cursor: zoom-in;}
    .zoom-out {cursor: zoom-out;}
    <h1>The cursor Property</h1>
    <p>Hover mouse over each to see how the cursor looks</p>
    
    <p class="alias">cursor: alias</p>
    <p class="all-scroll">cursor: all-scroll</p>
    <p class="auto">cursor: auto</p>
    <p class="cell">cursor: cell</p>
    <p class="context-menu">cursor: context-menu</p>
    <p class="col-resize">cursor: col-resize</p>
    <p class="copy">cursor: copy</p>
    <p class="crosshair">cursor: crosshair</p>
    <p class="default">cursor: default</p>
    <p class="e-resize">cursor: e-resize</p>
    <p class="ew-resize">cursor: ew-resize</p>
    <p class="grab">cursor: grab</p>
    <p class="grabbing">cursor: grabbing</p>
    <p class="help">cursor: help</p>
    <p class="move">cursor: move</p>
    <p class="n-resize">cursor: n-resize</p>
    <p class="ne-resize">cursor: ne-resize</p>
    <p class="nesw-resize">cursor: nesw-resize</p>
    <p class="ns-resize">cursor: ns-resize</p>
    <p class="nw-resize">cursor: nw-resize</p>
    <p class="nwse-resize">cursor: nwse-resize</p>
    <p class="no-drop">cursor: no-drop</p>
    <p class="none">cursor: none</p>
    <p class="not-allowed">cursor: not-allowed</p>
    <p class="pointer">cursor: pointer</p>
    <p class="progress">cursor: progress</p>
    <p class="row-resize">cursor: row-resize</p>
    <p class="s-resize">cursor: s-resize</p>
    <p class="se-resize">cursor: se-resize</p>
    <p class="sw-resize">cursor: sw-resize</p>
    <p class="text">cursor: text</p>
    <p class="url">cursor: url</p>
    <p class="w-resize">cursor: w-resize</p>
    <p class="wait">cursor: wait</p>
    <p class="zoom-in">cursor: zoom-in</p>
    <p class="zoom-out">cursor: zoom-out</p>

    Source: CSS cursor Property @ W3Schools

    0 讨论(0)
  • 2020-11-30 20:41

    I think move would probably be the closest standard cursor value for what you're doing:

    move
    Indicates something is to be moved.

    0 讨论(0)
  • 2020-11-30 20:44

    You can create your own cursors and set them as the cursor using cursor: url('path-to-your-cursor');, or find Firefox's and copy them (bonus: a nice consistent look in every browser).

    0 讨论(0)
  • 2020-11-30 20:46

    In case anyone else stumbles across this question, this is probably what you were looking for:

    .grabbable {
        cursor: move; /* fallback if grab cursor is unsupported */
        cursor: grab;
        cursor: -moz-grab;
        cursor: -webkit-grab;
    }
    
     /* (Optional) Apply a "closed-hand" cursor during drag operation. */
    .grabbable:active {
        cursor: grabbing;
        cursor: -moz-grabbing;
        cursor: -webkit-grabbing;
    }
    
    0 讨论(0)
  • 2020-11-30 20:47

    The closed hand cursor is not 16x16. If you would need them in the same dimensions, here you have both of them in 16x16 px

    Or if you need original cursors:

    https://www.google.com/intl/en_ALL/mapfiles/openhand.cur https://www.google.com/intl/en_ALL/mapfiles/closedhand.cur

    0 讨论(0)
  • 2020-11-30 20:53

    CSS3 grab and grabbing are now allowed values for cursor. In order to provide several fallbacks for cross-browser compatibility3 including custom cursor files, a complete solution would look like this:

    .draggable {
        cursor: move; /* fallback: no `url()` support or images disabled */
        cursor: url(images/grab.cur); /* fallback: Internet Explorer */
        cursor: -webkit-grab; /* Chrome 1-21, Safari 4+ */
        cursor:    -moz-grab; /* Firefox 1.5-26 */
        cursor:         grab; /* W3C standards syntax, should come least */
    }
    
    .draggable:active {
        cursor: url(images/grabbing.cur);
        cursor: -webkit-grabbing;
        cursor:    -moz-grabbing;
        cursor:         grabbing;
    }
    

    Update 2019-10-07:

    .draggable {
        cursor: move; /* fallback: no `url()` support or images disabled */
        cursor: url(images/grab.cur); /* fallback: Chrome 1-21, Firefox 1.5-26, Safari 4+, IE, Edge 12-14, Android 2.1-4.4.4 */
        cursor: grab; /* W3C standards syntax, all modern browser */
    }
    
    .draggable:active {
        cursor: url(images/grabbing.cur);
        cursor: grabbing;
    }
    
    0 讨论(0)
提交回复
热议问题