2012-03-29 9 views
7

Observé que el botón para cambiar el tamaño de mi área de texto cuando se movía o hacía clic permanecía como una flecha.CSS para cambiar el estilo del cursor del botón de cambio de tamaño en un área de texto

Me parece que debería ser un puntero.

ya que existe css para eliminar o añadir la herramienta de cambio de tamaño para un área de texto,

resize:none; 

y CSS para cambiar el cursor de todo el área de texto,

cursor:pointer; 

pero parece que no hay debería ser un parámetro css para controlar el cursor del botón de cambio de tamaño. He estado buscando un poco y parece que no puedo encontrar la propiedad. Puedo pensar en algunas formas de hacer esto en javascript o jquery, pero parece exagerado.

Entonces, ¿hay alguna manera de establecer el cursor solo para el botón de cambio de tamaño de un área de texto a través de css?

Respuesta

5

Esto es renderizado por el navegador y no es parte de HTML, por lo tanto, no se puede diseñar a través de CSS.

+0

Parece que una solución Javascript es entonces. – Rooster

+0

Consulte mi respuesta para una solución jQuery aún más sencilla. – SpYk3HH

+0

Esto funcionó en Chrome agregándolo a la hoja de estilo FYI –

0

Esa es una característica del navegador ... no hay ningún estilo para eso. Algunos navegadores ni siquiera muestran las esquinas de nuevo tamaño en el área de texto. Tristemente, eso probablemente no puede ser alterado en este punto.

15

Hay una manera simple en jQuery para tratar este problema.

<script type="text/javascript"> 
    $(function() { 
     $(document).on('mousemove', 'textarea', function(e) { 
      var a = $(this).offset().top + $(this).outerHeight() - 16, // top border of bottom-right-corner-box area 
       b = $(this).offset().left + $(this).outerWidth() - 16; // left border of bottom-right-corner-box area 
      $(this).css({ 
       cursor: e.pageY > a && e.pageX > b ? 'nw-resize' : '' 
      }); 
     }) 
    }); 
</script> 

Ver jsFiddle

Una línea

$(document).on('mousemove', 'textarea', function(e) { var a=$(this).offset().top+$(this).outerHeight()-16,b=$(this).offset().left+$(this).outerWidth()-16;$(this).css({cursor:e.pageY>a&&e.pageX>b?"nw-resize":""}); }) 
+0

muy agradable. Me gustaría incluso mejor si hubiera una solución CSS, pero esto funciona muy bien, gracias. – Rooster

+0

Sí, quería CSS simple o para navegadores que ya lo hicieran, pero hasta ahora, eso es un no ir. La secuencia de comandos anterior solo trata con la esquina inferior derecha (el área de cambio de tamaño), pero podría usarse para aplicar el cambio de mouse cuando y donde en un área de texto – SpYk3HH

+1

@ SpYk3HH Probablemente desee eliminar myPos.bottom> e.pageY y myPos.right> e .pageX ya que está adjuntando el evento a textarea (el estilo del cursor es válido solo en el interior) – shuji

Cuestiones relacionadas