Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript: скроллинг внутри блока

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Putila

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
искал. вроде нет такой темы.  
Задача: прокручивать информацию внутри некоторой области.  
 
замучился. в эксплорере скорость прокрутки нормаьлная - в фаер фоксе реактивная ((( чё делать..?
 
вот мой скрипт  

Цитата:
 
function scrollMeH(contentblock,direction) {
  var contentMask = document.getElementById(contentblock)
  var contentBlock = document.getElementById(contentblock+"block")
  var contentBlockWidthElement = contentBlock.childNodes[0]
  if (document.getElementById("contentcatalogsubmenutable"))  
    contentBlockOffsetWidth = document.getElementById("contentcatalogsubmenutable").offsetWidth + 50
  else
    contentBlockOffsetWidth = contentBlock.offsetWidth
  var speed = parseInt((IE ? 1 : 30) * contentBlockOffsetWidth/contentMask.offsetWidth)
  if(direction==0 && parseInt(contentBlock.offsetLeft)<=0) {
    if (contentMask.offsetWidth - contentBlockOffsetWidth != 0) {
        contentBlock.style.left=parseInt(contentBlock.offsetLeft)+Math.min(speed,-parseInt(contentBlock.offsetLeft));
      }
  }
  else if(direction==1 && parseInt(contentBlock.offsetLeft)>=(contentBlockOffsetWidth*(-1)+contentMask.offsetWidth)) {
    if (contentMask.offsetWidth - contentBlockOffsetWidth != 0) {
      contentBlock.style.left=parseInt(contentBlock.offsetLeft)-Math.min(speed,parseInt(contentBlock.offsetLeft)-(contentBlockOffsetWidth*(-1)+contentMask.offsetWidth));
    }
  }
  else
    stopScroll()
}
function startScrollV(direction,contentblock) {
  if (direction==1)
    scrollInterval = window.setInterval("scrollMeV('"+contentblock+"',0)", 200);
  else if (direction==2)
    scrollInterval = window.setInterval("scrollMeV('"+contentblock+"',1)", 200);
}
function startScrollH(direction,contentblock) {
  if (direction==1)
    scrollInterval = window.setInterval("scrollMeH('"+contentblock+"',0)", 50);
  else if (direction==2)
    scrollInterval = window.setInterval("scrollMeH('"+contentblock+"',1)", 50);
}
function stopScroll() {
  clearInterval(scrollInterval)
}
 

 

Всего записей: 602 | Зарегистр. 27-04-2003 | Отправлено: 12:24 31-08-2005 | Исправлено: Putila, 19:51 31-08-2005
Putila

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
беда была в этой строчке.
   var speed = parseInt((IE ? 1 : 30) * contentBlockOffsetWidth/contentMask.offsetWidth)  
 
 
надо так  
   var speed = parseInt((IE ? 1 : 1) * contentBlockOffsetWidth/contentMask.offsetWidth)  

Всего записей: 602 | Зарегистр. 27-04-2003 | Отправлено: 19:50 31-08-2005
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » JavaScript: скроллинг внутри блока


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru