За последние 24 часа нас посетили 17534 программиста и 1722 робота. Сейчас ищут 1588 программистов ...

Полоса прокрутки на JS

Тема в разделе "JavaScript и AJAX", создана пользователем HarPy, 22 авг 2006.

  1. HarPy

    HarPy Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    59
    Симпатии:
    0
    Адрес:
    Новый Уренгой
    Я слышал, что можно с помощью JS создать полосу прокрутки которая будет находиться на расстоянии от края окна и вней можно использовать свои рисунки, т.е. нарисовать ее самостоятельно.
    подскажите пожалуйста - оч. хочется попробовать...
     
  2. Петр

    Петр Активный пользователь

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Полосу лучше в отдельный фрейм. Собственно так и делают.
    Плюс свойства scroll, scrollBy и scrollTo объекта window.
     
  3. Ti

    Ti Активный пользователь

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    очень давно нарисовал:
    Код (Text):
    1.  
    2. <script>
    3. function scroll(obj, order,increase, delay, length) {
    4.     if (!increase) increase = 1
    5.     if (!delay) delay = 1
    6.     var pos = (increase < 0) ? increase * -1 : increase
    7.     pos = Math.ceil(length/pos)
    8.     var first = order ? obj.scrollLeft : obj.scrollTop
    9.     function doScroll() {
    10.         if (length && pos-- <= 0) {
    11.             clearInterval(obj.interval)
    12.             return;
    13.         }
    14.         if (order) obj.scrollLeft += increase
    15.         else obj.scrollTop += increase
    16.         if ((order ? obj.scrollLeft : obj.scrollTop) !== first + increase) clearInterval(obj.interval)
    17.         first = order ? obj.scrollLeft : obj.scrollTop
    18.     }
    19.     if (obj.interval) clearInterval(obj.interval)
    20.     obj.interval = setInterval(doScroll, delay)
    21. }
    22. </script>
    23.  
    24. <div id="scrollDiv" style="overflow: hidden; width: 9em; height: 3em; border: 1px solid Silver; text-align: center; white-space: nowrap;">
    25.     <script>for(i=0; i<100; i++) document.write('text text text '+i+' text text text text text text text text text text text text text text text text text text<br>')</script>
    26. </div>
    27.  
    28. <script>
    29. function stopScroll(obj) {
    30.     function stopScroll() {
    31.         clearInterval(obj.interval)
    32.         document.onmouseup = null
    33.         document.body.onmouseout = null
    34.     }
    35.     document.onmouseup = function() {stopScroll()}
    36.     document.body.onmouseout = function() {stopScroll()}
    37. }
    38. </script>
    39.  
    40. <input type="button" value="вниз"
    41.     onmousedown="scroll(scrollDiv, 0, 1)"     onmouseup="clearInterval(scrollDiv.interval)"     onmouseout="clearInterval(scrollDiv.interval)"
    42.     onkeydown="scroll(scrollDiv, 0, 1)"     onkeyup="clearInterval(scrollDiv.interval)" >
    43.  
    44.  
    45. <input type="button" value="Влево" onclick="scroll(scrollDiv, 1, -1)">
    46. <input type="button" value="Вправо"  onclick="scroll(scrollDiv, 1, 1)">
    47.  
    48. <input type="button" value="Стоп!" onclick="clearInterval(scrollDiv.interval)">
    49. <br>
    50. <input type="button" value="Вниз"  onclick="scroll(scrollDiv, 0, 1)">
    51. <input type="button" value="Вверх" onclick="scroll(scrollDiv, 0, -1)">
    52. <br>
    53. помедленее
    54. <input type="button" value="Вниз"  onclick="scroll(scrollDiv, 0, 1, 100)">
    55. <input type="button" value="Вверх" onclick="scroll(scrollDiv, 0, -1, 100)">
    56. <br>
    57. быстрее
    58. <input type="button" value="Вниз"  onclick="scroll(scrollDiv, 0, 10)">
    59. <input type="button" value="Вверх" onclick="scroll(scrollDiv, 0, -10)">
    60. <br>
    61. рывками
    62. <input type="button" value="Вниз"  onclick="scroll(scrollDiv, 0, 20, 1000)">
    63. <input type="button" value="Вверх" onclick="scroll(scrollDiv, 0, -20, 1000)">
    64. <br>
    65. <input type="button" value="Вниз 20px"  onclick="scroll(scrollDiv, 0, 1, 1, 20)">
    66. <input type="button" value="Вверх 20px" onclick="scroll(scrollDiv, 0, -1, 1, 20)">
    67. <br>
    68. <input type="button" value="Вниз на экран"  onclick="scroll(scrollDiv, 0, 1, 1, scrollDiv.offsetHeight)">
    69. <input type="button" value="Вверх на экран" onclick="scroll(scrollDiv, 0, -1, 1, scrollDiv.offsetHeight)">
    70.  
    71. ----------------------------------------
    72. scroll(obj, [order=0, [increase=1, [delay=1, [length=null]]]])
    73.  
    74. параметры:
    75. obj      - кого скролим?
    76. order    - напрпвление X|Y
    77.               если равно null, false, 0 и т.д. - вертикальный скролл
    78. increase - по сколько пикселей скролить?
    79.               Отрицательное число скролит в обратную сторону
    80. delay    - задержка в мсек.
    81. length   - общая длина скорла.
    82.               если меньше increase, проскролится на increase px
    83.               если равно null, false, 0 и т.д. то до скролиться будет до конца
    84.  
    85. если юзверь начнёт скролить своими богатырскими силушками, автоматический скролл выключается
     
  4. HarPy

    HarPy Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    59
    Симпатии:
    0
    Адрес:
    Новый Уренгой
    вот как только это организовать - я так понимаю, что изображения начала и конца прокрутки нужно привязывать к чемуто и сам скролл тоже должен быть привязан к чему то...
     
  5. HarPy

    HarPy Активный пользователь

    С нами с:
    10 июл 2006
    Сообщения:
    59
    Симпатии:
    0
    Адрес:
    Новый Уренгой
    прошу прощения отвлекся и не заметил нового сообщения
    Большое спасибо