Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.08.2011, 17:44
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

Как изменить указатель мыши при зажатой кнопке(выделении)?
сабж, делаю слайдер, копаюсь в jQuery UI Slider, но пока безрезультатно
Ответить с цитированием
  #2 (permalink)  
Старый 28.08.2011, 21:42
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

это можно сделать через

jQuery(element).css("cursor", <cursor> );


пример ниже. но без jquery
<body>нажми кнопку и держи</body>
<script>
document.body.onmousedown = document.body.onmouseup = function(e){
    *!*this.style.cursor*/!* = (e||event).type === "mousedown" ? *!*"help":"default";*/!*
}
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 28.08.2011, 21:50
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

это не работает
Ответить с цитированием
  #4 (permalink)  
Старый 28.08.2011, 22:34
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Это сработает, только если вы для элемента запретите выделение.

Для этого в каждом браузере будет свой подход, согласно CSS3 можно использовать user-select: none (element.style.userSelect = "none"), но это будет работать только в браузерах, поддерживающих CCS3.

В IE и старых Opera браузерах можно использовать аттрибут (не стиль) элемента unselectable="on". В браузерах mozilla можно использовать css-свойство -moz-user-select: none (mozUserSelect через JS) и -webkit-user-select: none (webkitUserSelect через JS).

Таким образом полное выключение выделения внутри элемента будет выглядеть так:
.unselectable { -moz-user-select: none; -webkit-user-select: none; user-select: none; }

<div unselectable="on" class="unselectable">This content cannot be selected by mouse or keyboard.</div>


Однако следует обратить внимание, что реализация unselectable отличается от CCS3 user-select: none; тем, что выбрать unselectable элемент все равно можно, если "начать" выделение вне самого элемента. В случае CSS3 свойства выделить элемент нельзя будет и таким способом.

Но если вы уберете возможность выделения, то сможете подавить встроенный функционал браузера, согласно которому курсор меняется на "text" и поставить свой.

Последний раз редактировалось Андрей Параничев, 28.08.2011 в 22:41.
Ответить с цитированием
  #5 (permalink)  
Старый 28.08.2011, 22:39
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Соответственно полным решением вашей задачи, если вам нужен будет один из стандартных курсоров, а не полностью кастомный, будет объявления стиля для псевдо-класса active, или написание соответствующего скрипта, который по событию mousedown сменит курсор. Для моего примера можно использовать такой стиль (в IE будет работать только если элемент с классом unselectable будет тегом "a"):
.unselectable { cursor: default; } .unselectable:active { _cursor: hand; cursor: pointer; }

Последний раз редактировалось Андрей Параничев, 28.08.2011 в 22:43. Причина: Пояснение про IE
Ответить с цитированием
  #6 (permalink)  
Старый 28.08.2011, 23:56
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

Андрей Параничев,
спасибо, буду пока копать дальше, в jq ui slider сделано иначе, изучаю
Ответить с цитированием
  #7 (permalink)  
Старый 29.08.2011, 00:23
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

abc_ua,
Хм, насколько я знаю, в jQuery UI slider вообще нет изменения курсора при нажатии мышкой на каретку.
Выделение в нем не срабатывает, потому что при mousedown делается preventDefault().

И вообще, я бы не советовал брать jQuery UI, как эталон. Эта библиотека прошита нитками виджетов, плагинов и внутренних методов самого jQuery, её нелегко изучать, кроме того, реализация некоторых плагинов из набора jQuery UI далека от идеала настолько, что мне пришлось в одном из проектов полностью отказаться от их использования.

Последний раз редактировалось Андрей Параничев, 29.08.2011 в 00:34.
Ответить с цитированием
  #8 (permalink)  
Старый 29.08.2011, 05:48
Кандидат Javascript-наук
Отправить личное сообщение для BorisBritva Посмотреть профиль Найти все сообщения от BorisBritva
 
Регистрация: 17.03.2010
Сообщений: 145

$('body').mousedown(function(){$(this).css({cursor:'move'});});
$('body').mouseup(function(){$(this).css({cursor:'default'});});


http://htmlbook.ru/css/cursor
Ответить с цитированием
  #9 (permalink)  
Старый 30.08.2011, 17:35
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

Андрей Параничев,
вот поэтому я и пишу с нуля. напишу ровно то, что мне нужно и изучу тему
Ответить с цитированием
  #10 (permalink)  
Старый 31.08.2011, 21:27
Кандидат Javascript-наук
Отправить личное сообщение для abc_ua Посмотреть профиль Найти все сообщения от abc_ua
 
Регистрация: 20.05.2010
Сообщений: 105

Возможно кому-то понадобится, результат в архиве, критика и идеи для улучшения приветствуются
Вложения:
Тип файла: zip slider.zip (1.9 Кб, 21 просмотров)

Последний раз редактировалось abc_ua, 31.08.2011 в 21:31.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как в ВKонтакте сделано проигрывание при серфинге? iMichaeli7 Элементы интерфейса 9 18.05.2011 17:47
Как сделать, чтобы при наведении на кнопку справа от нее появлялись текстовые ссылки? Tass Общие вопросы Javascript 7 17.02.2011 09:06
Закрытие прозрачного div при щелчке мыши в любой его области mav1 Элементы интерфейса 8 09.02.2011 19:25
FireFox: onmouseover не работает при зажатой кнопке мыши no. Общие вопросы Javascript 4 19.08.2008 13:43
Подскажите как при помощи JS hta в трею свернуть kimboo Общие вопросы Javascript 4 11.07.2008 16:00