Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.10.2018, 13:52
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

Менять курсор при нажатии левой кнопки мыши
Здравствуйте!
Есть Slick Slider, включена функция "листания" слайдов мышкой (draggable: true). Для перелистывания нужно нажать кнопку мыши на слайде и потянуть влево или вправо.
Я хочу, что бы при нажатии кнопки мыши на слайде курсор менялся (мне кажется так понятнее будет, что слайд можно пролистнуть).
Искал ответ в гугл, но ничего не нашел - либо, кроме меня, это нафиг никому не нужно, либо решение слишком очевидно, что бы о нем писать.. ))
Ответить с цитированием
  #2 (permalink)  
Старый 30.10.2018, 14:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Igorsrt
Искал ответ в гугл, но ничего не нашел
http://htmlbook.ru/css/cursor
Ответить с цитированием
  #3 (permalink)  
Старый 30.10.2018, 14:12
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

в css можно либо при наведении (:hover) либо :active менять стили.. а мне же нужно, что бы при клике на кнопку (нажал кнопку - поменялся курсор, отпустил - вернулся прежний)
Ответить с цитированием
  #4 (permalink)  
Старый 30.10.2018, 14:19
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Ну так меняйте скриптом, проблема в самом курсоре, или как именно в этом плагине изменить?
Ответить с цитированием
  #5 (permalink)  
Старый 30.10.2018, 14:20
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

Сообщение от laimas Посмотреть сообщение
http://htmlbook.ru/css/cursor
Сообщение от laimas Посмотреть сообщение
Ну так меняйте скриптом, проблема в самом курсоре, или как именно в этом плагине изменить?
проблема - как именно менять
Ответить с цитированием
  #6 (permalink)  
Старый 30.10.2018, 14:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Согласно документации можно устанавливать события, значит попробуйте обработчики событий mousedown, mouseup, где и изменяйте курсор.
Ответить с цитированием
  #7 (permalink)  
Старый 30.10.2018, 15:22
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

Сообщение от Igorsrt Посмотреть сообщение
в css можно либо при наведении (:hover) либо :active менять стили
Не совсем так, через CSS можно и просто назначить курсор для элемента, без всяких hover и active.

Сообщение от Igorsrt Посмотреть сообщение
мне же нужно, что бы при клике на кнопку (нажал кнопку - поменялся курсор, отпустил - вернулся прежний)
Не совсем понятно и в вопросе нет никакого исходника html-макета.

Если поможет, приведу такой пример:
<style>.test{display: inline-block; width: 50px; height: 50px; margin-right: 15px; border: solid 1px #ccc;}</style>


<div class="test" style="background: red;"></div>
<div class="test" style="background: blue;"></div>
<div class="test" style="background: brown;"></div>
<div class="test" style="background: yellow;"></div>
<div class="test" style="background: orangered;"></div>
<button id="btn">Сменить курсор</button>


<script>
    document.querySelector('#btn').addEventListener('click', function() {
        let cursorArr = ['e-resize', 'col-resize', '-webkit-grab', 'all-scroll', 'pointer'];

        this.classList.toggle('cursor-active');
        
        let blocks = document.querySelectorAll('.test');

        if (this.classList.contains('cursor-active')) {
            this.textContent = 'Вернуть курсор';
            blocks.forEach((el, i) => el.style.cursor = cursorArr[i]);
        }
        else {
            this.textContent = 'Сменить курсор';
            blocks.forEach((el, i) => el.style.cursor = 'auto');
        }
    })
</script>
Ответить с цитированием
  #8 (permalink)  
Старый 30.10.2018, 15:34
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

Сообщение от laimas Посмотреть сообщение
Согласно документации можно устанавливать события, значит попробуйте обработчики событий mousedown, mouseup, где и изменяйте курсор.
вот такой код попробовал:
jQuery('.slider-for').on({
  'mousedown': function (e) {
    jQuery(this).addClass('mouseDown');
    return false;
  },
  'mouseup': function () {
    jQuery(this).removeClass('mouseDown');
  }
});

При нажатии на кнопку - класс mouseDown добавляется, но при отпускании кнопки - почему-то пока не удаляется...
Ответить с цитированием
  #9 (permalink)  
Старый 30.10.2018, 15:54
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

В общем то должно работать. Меняйте привило, то есть .css({cursor: нужный/текущий})

Последний раз редактировалось laimas, 30.10.2018 в 15:57.
Ответить с цитированием
  #10 (permalink)  
Старый 30.10.2018, 18:13
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<style>
		div{
			width: 500px;
			height: 500px;
		}
	</style>
<div class="slider-for">слайдер</div>
	<script>

document.querySelector('.slider-for').onmousedown = e => e.target.style.cursor = 'pointer';
document.querySelector('.slider-for').onmouseup = e => e.target.style.cursor = 'default';

	</script>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена картинки кнопки при нажатии и обратно при повторном нажатии mff Общие вопросы Javascript 15 03.05.2018 14:12
Скролл контента удержанием левой кнопки мыши dezzignet jQuery 1 15.03.2016 17:26
показать/убрать текст при переходе с кнопки на кнопу radio zazula Общие вопросы Javascript 12 03.08.2015 11:53
Присвоение значений элементу input при нажатии кнопки. Минин Игорь Элементы интерфейса 8 26.11.2012 06:01
Получение данных строки грида при нажатии сторонней кнопки Allan Stark ExtJS 4 17.11.2011 19:21