Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   При прокрутки скроллинга выделается текст в ie (https://javascript.ru/forum/jquery/39056-pri-prokrutki-skrollinga-vydelaetsya-tekst-v-ie.html)

Nailya 13.06.2013 17:53

При прокрутки скроллинга выделается текст в ie
 
Всем доброго время суток!

использовала плагин для скроллинга из этой серии http://www.coolwebmasters.com/codes-...crollbars.html

Все хорошо работает, кроме IE 8, где при нажатой клавиши мыши на скроллинге(если при филигранно точном расположении курсора на скроллинге, то нормально работпет,а если отвести курсор чуть вправо/влево,то выделяется текст) вдобавок выделяется еще и текст, а в FF все нормально работает.

Как можно избавиться от ненужного выделения текста при прокрутки скроллинга в IE?

Deff 13.06.2013 19:19

Цитата:

Сообщение от Nailya
(если при филигранно точном расположении курсора на скроллинге, то нормально работпет,а если отвести курсор чуть вправо/влево,то выделяется текст)

Затянуть контент со скроллом прозрачной картинкой, исключив скроллбар
Или расширить скроллбар, дабы не было филигранности.

danik.js 13.06.2013 19:35

Исправляется легко. Нужно в обработчик mousedown добавить event.preventDefault() , то бишь отменить действие по умолчанию, кое есть выделение мышкой.

Nailya 14.06.2013 16:28

event.preventDefault() уже есть - не помогает

расширить скроллбар не могу, нужно, чтобы он определенной ширины

Цитата:

Сообщение от Deff (Сообщение 256149)
Затянуть контент со скроллом прозрачной картинкой, исключив скроллбар

хм! попробую

Nailya 14.06.2013 16:53

что-то я запуталась как это затянуть в css jquery, окосеть можно(
может мне кто-н подскажет где его затянуть

Deff 14.06.2013 17:09

Цитата:

Сообщение от Nailya (Сообщение 256357)
что-то я запуталась как это затянуть в css jquery, окосеть можно(
может мне кто-н подскажет где его затянуть

Ну к примеру;

<style type="text/css">
.block {
 position:relative;
 width:100px;
 border:red 1px solid;/*Для теста*/
}
.block img.inwrap {
 position:absolute;
 z-index:100;
 left:-6px;
 height:105%;
 width:95px;
 border:blue 1px solid;/*Для теста*/
}
</style>
<div class="block">
<img class=inwrap src="http://forum.mybb.ru/i/blank.gif"/>
asdasdasdasd<br>
asdasdasdasd<br>
asdasdasdasd<br>
asdasdasdasd<br>
</div>

Nailya 14.06.2013 18:00

у меня просто скроллинг перестал работать(

спасибо за потраченное время, придется самой как-н разбираться

danik.js 14.06.2013 22:18

Цитата:

Сообщение от Nailya
event.preventDefault() уже есть - не помогает

Да, действительно, в IE8 это не сработает.
Решение такое: на событие mousedown полосы прокрутки навешиваем обработчик onMouseDown, на событие mouseup соответственно onMouseUp

function cancelEvent = function(e) {
    return e.preventDefault();
}

function onMouseDown() {
    $(document).on('selectstart', cancelEvent);
}
function onMouseUp()
    $(document).off('selectstart', cancelEvent);
}

devote 15.06.2013 01:05

Цитата:

Сообщение от danik.js
function cancelEvent = function(e) {

это че за конструкция такая? :blink:


Часовой пояс GMT +3, время: 10:08.