Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Убрать полосу прокрутки. Оставить скроллинг (https://javascript.ru/forum/project/5572-ubrat-polosu-prokrutki-ostavit-skrolling.html)

Izgoj 23.10.2009 21:14

Убрать полосу прокрутки. Оставить скроллинг
 
Очень нужно убрать полосу прокрутки на сайте, но при этом оставить непосредственно функцию прокрутки колесиком.
Пытался сам, но получилось только для IE:

<html>
<body id="stranica" style="overflow: hidden">
<div id="peremeschaemij" style="position: absolute; left: 250; top: 50">
<div>ЛЯЛЯЛЯ<br><br><br><br><br><br>
<div>ЛЯЛЯЛЯ<br><br><br><br><br><br>
<div>ЛЯЛЯЛЯ<br><br><br><br><br><br>
<div>ЛЯЛЯЛЯ<br><br><br><br><br><br>
<div>ЛЯЛЯЛЯ<br><br><br><br><br><br>
<div>ЛЯЛЯЛЯ<br><br><br><br><br><br>
<div>ЛЯЛЯЛЯ<br><br><br><br><br><br>
<div>ЛЯЛЯЛЯ<br><br><br><br><br><br>
<div>ЛЯЛЯЛЯ<br><br><br><br><br><br>
<div>ЛЯЛЯЛЯ<br><br><br><br><br><br>
<div>ЛЯЛЯЛЯ<br><br><br><br><br><br>
<div>ЛЯЛЯЛЯ<br><br><br><br><br><br>
<div>ЛЯЛЯЛЯ<br><br><br><br><br><br>
</div>
</body>
<script>
	function stranica.onmousewheel()
{ var m = parseInt(document.all.peremeschaemij.style.top)
delta = event.wheelDelta/120
if (delta > 0)
document.all.peremeschaemij.style.top = m + 100
if (delta < 0)
document.all.peremeschaemij.style.top = m - 100
}
</script>
</html>

x-yuri 24.10.2009 03:05

зачем убирать полосу прокрутки, если весь текст не помещается на страницу?

Izgoj 24.10.2009 22:57

блин, мне для фрейма нужно....

Octane 24.10.2009 23:07

Цитата:

Сообщение от Izgoj
мне для фрейма нужно

iframe: атрибут scrolling

Izgoj 24.10.2009 23:13

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

Octane 24.10.2009 23:20

Скроллинг мышкой уже сами, с помощью JavaScript, отлавливая события DOMMouseScroll и mousewheel.

Izgoj 24.10.2009 23:25

ну вот. мне и очень нужен скрипт, как эо сделать. потому что я способен только на IE. я долго пробовал, но никак не получается. помогите плз для других браузеров!!!)

B~Vladi 25.10.2009 21:15

Сказано же - DOMMouseScroll

x-yuri 25.10.2009 21:36

Цитата:

Сообщение от Izgoj
я долго пробовал, но никак не получается. помогите плз для других браузеров!!!)

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

Izgoj 25.10.2009 21:58

у меня iframe. если у него сделать полосу прокрутки, то весь вид испортиться, а прокручивать содержимое необходимо.

По поводу onmousewheel и dommousescroll. Я понимаю, что нужно отловить события с их помощью. Что нужно использовать attachevent. Но. Как это сделать наверняка, я не знаю. Я очень долго пытался сделать сам, но ни фига не получается.

Kolyaj 26.10.2009 13:29

Цитата:

Сообщение от Izgoj
у меня iframe. если у него сделать полосу прокрутки, то весь вид испортиться, а прокручивать содержимое необходимо.

А как пользователь догадается, что можно прокручивать?

В любом случае вы тут все извращенцы, ибо достаточно iframe запихнуть в div с overflow: hidden, той же высоты и с шириной на 20px меньше.

x-yuri 26.10.2009 14:25

Цитата:

Сообщение от Izgoj
если у него сделать полосу прокрутки, то весь вид испортиться, а прокручивать содержимое необходимо.

сделай полосу прокрутки сам

Цитата:

Сообщение от Kolyaj
В любом случае вы тут все извращенцы, ибо достаточно iframe запихнуть в div с overflow: hidden, той же высоты и с шириной на 20px меньше.

спорный вопрос, твое решение из серии browser detection

Kolyaj 26.10.2009 15:08

Цитата:

Сообщение от x-yuri
твое решение из серии browser detection

А причем здесь browser detection?

x-yuri 26.10.2009 15:19

ну это несколько далекая аналогия: определние браузера не гарантирует, что будет работать некоторая фича. Также 20px не спасет, если пользователь увеличит размер полосы прокрутки :) Например, для Font size Extra large (свойства экрана) ширина - 26px. Хотя в общем-то можно и больше 20px поставить...

Izgoj 26.10.2009 15:45

создав собственную полосу прокрутки, всё равно необходимо сделать скроллинг. Просто полоса прокрутки - необычная, и это отдельный вопрос.
Вот файл содержимого фрейма. Подскажите пожалуйста, в чём тут ошибка (возможно - в самом простом):

<html>
<body id="fon" style=" overflow: hidden ">
<div id="moving" style="position: absolute; left: 0; top: 0">
<div>Что не так???</div><br><br><br><br><br><br><br>
<div>Что не так???</div><br><br><br><br><br><br><br>
<div>Что не так???</div><br><br><br><br><br><br><br>
<div>Что не так???</div><br><br><br><br><br><br><br>
<div>Что не так???</div><br><br><br><br><br><br><br>
<div>Что не так???</div><br><br><br><br><br><br><br>
<div>Что не так???</div><br><br><br><br><br><br><br>
<div>Что не так???</div><br><br><br><br><br><br><br>
<div>Что не так???</div><br><br><br><br><br><br><br>
</body>
<script>
<!--begin!-->
  if (get('fon').addEventListener)
  {
      get('fon').addEventListener('DOMMouseScroll', wheel, false);
  }
  get('fon').onmousewheel = wheel;
	function wheel(event)
{
    var wheelDelta = 0;    
    var step = 300;
    if (!event) 
    { event = window.event;
    }
    if (event.wheelDelta) 
    { wheelDelta = event.wheelDelta/120;
    } 
    else if (event.detail) 
    { wheelDelta = -event.detail/3;
    }
    if (wheelDelta)
    {   var m = parseInt(document.all.moving.style.top);               
        document.all.moving.style.top = wheelDelta*step + m;
    }
}
<!--end!-->
</script>
</html>

Kolyaj 26.10.2009 15:48

Цитата:

Сообщение от x-yuri
Например, для Font size Extra large (свойства экрана) ширина - 26px. Хотя в общем-то можно и больше 20px поставить...

20px я от балды взял, ничто не мешает взять ширину viewport'а у iframe.

Izgoj 26.10.2009 17:24

Цитата:

В любом случае вы тут все извращенцы, ибо достаточно iframe запихнуть в div с overflow: hidden, той же высоты и с шириной на 20px меньше.
Блин, как все просто оказывается)) большое спасибо!!
Но, все-таки, можно узнать в чем ошибка указанного мной кода?


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