【问题标题】:Issues with changing cursor image on change of cursor - Canvas Drawing App更改光标时更改光标图像的问题 - 画布绘图应用程序
【发布时间】:2016-06-07 20:48:53
【问题描述】:

我正在创建一个画布绘图应用程序,我希望能够在单击工具时为每个工具加载我的光标图像。我一直在工作,直到我做了一些重新装修并改变了布局。我将工具放在重新设计的表格中,但我认为这不应该是问题所在。感谢您的所有帮助。

      ****************HTML**********************                 


 <div class="tools2">



  <table>                             
     <tr>
     <th>
     <div id="brush">
    <input type="image" class="line" src="./assets/imgs/tools/brush.png" />
     </div>
     </th>
     <th>  
     <div id="bucket">
   <input type="image" class="line" src="./assets/imgs/tools/bucket.png" onclick="setFill()" />
      </div>
      </th>
      <th> 
      <div id="eraser">
      <input type="image" class="line" src="./assets/imgs/tools/eraser.png" onclick="setEraser()" />
      </div>
       </th>
       <th>
       <div>
       <form onsubmit='return false;'>
       <input type='image' src="./assets/imgs/tools/clear_brush.png"  class="line" id="clear" onclick='clear_canvas_rectangle ()'>                          
       </form> 
       </div>      
        </th> 
        </tr>
       </table>

   ****************JQUERY********************** 

<script> 


   $('.tools2 a div').each(function() {
        $(this).click(function () {
            setCursor($(this).attr('id'));
        });
    });






function setCursor(id) {
    console.log("init.js: setCursor(): id: " + id);

    switch (id) {
        case 'brush':
            shape = SHAPE_TYPE.LINE;
        break;
        case 'circle':
            shape = SHAPE_TYPE.CIRCLE;
        break;
        case 'rectangle':
            shape = SHAPE_TYPE.RECTANGLE;
        break;
        case 'eraser':
            shape = SHAPE_TYPE.ERASER;
        break;
        case 'fill':
            shape = SHAPE_TYPE.FILL;
        break;


    }

    console.log("image path: " + 'cursor_' + id + '.png');

$('.canvas-boards').css('cursor', 'url(../assets/imgs/tools/cursor_' + id + '.png)0 130, auto');





$('.canvas-boards').css('cursor', 'url(../assets/imgs/tools/brush.png) 0 0, auto');
}

function setLine(){
    console.log('init.js: setLine(): brush');
    shape = SHAPE_TYPE.LINE;
    $('.canvas-boards').css('cursor', 'url(../assets/imgs/tools/cursor_brush.png)0 130, auto');
}

function setEraser(){

    shape = SHAPE_TYPE.ERASER;
    $('.canvas-boards').css('cursor', 'url(../assets/imgs/tools/cursor_eraser.png) 0 130, auto');
}
function setFill(){
    shape = SHAPE_TYPE.FILL;
    $('.canvas-boards').css('cursor', 'url(../assets/imgs/tools/bucket.png) 0 130, auto');
}

function setCircle(){
    console.log('init.js: setCircle(): circle');
    shape = SHAPE_TYPE.CIRCLE;
    $('.canvas-boards').css('cursor', 'url(../assets/imgs/tools/cursor_circle.png)0 130, auto');
}
function setRectangle(){
    console.log('init.js: setRectangle(): rect');
    shape = SHAPE_TYPE.RECTANGLE;
    $('.canvas-boards').css('cursor', 'url(../assets/imgs/tools/cursor_rectangle.png)0 130, auto');



}

【问题讨论】:

  • 我认为在 CSS 中定义所有不同的光标,然后根据用户选择更改画布上的类名会更有效。

标签: javascript jquery html canvas


【解决方案1】:

先去掉&lt;div class="tools"&gt;类中的数字“2”

第二个路径错误,更正:

 $('.tools table tr th div').each(function() {
        $(this).click(function () {
        console.log($(this).attr('id'));
            setCursor($(this).attr('id'));
        });
    });

https://jsfiddle.net/nr6yn2yz/

【讨论】:

  • 我进行了更正,并且在单击时将光标更改回画笔确实有效,并且一切正常并在控制台中正确调用。我似乎无法将光标从画笔图像上移开以更改为工具的另一个图像。我对此感到困惑,因为它正在工作并且没有错误。我将所有光标设置为 128px x 128px,所以我认为这不是尺寸问题??
  • 你能打开一个新问题吗?并提供更多细节,也许是一些截图......也许这个问题可以帮助其他人
  • 你说得对,我在这里开了一个新问题stackoverflow.com/questions/37800914/…
猜你喜欢
  • 2017-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多