Скроллер содержимого
Вложений: 2
Доброго времени суток всем.
Помогите пожалуйста новичку в jQuery... Есть скроллер содержимого вот такой: ссылка Архив с собранным скроллером: скачать Хочу изменить его немного... сделать вертикальным - с этим я почти разобрался и самое главное изменить его так, чтобы "пролистывание" происходило не по КЛИКУ, а при НАВЕДЕНИИ на те же стрелочки... Пробовал менять в файле "scrollable.js" строчки:
// prev
$(opts.prev, root).click(function() { self.prev() });
// next
$(opts.next, root).click(function() { self.next() });
на эти:
// prev
$(opts.prev, root).hover(function() { self.prev() });
// next
$(opts.next, root).hover(function() { self.next() });
При этом скроллер начинает странно себя вести. Работает лишь наведение на левую PREV стрелочку, а NEXT не пашет совсем. Если строки (указанные выше) поменять местами, то работает NEXT, а PREV перестает работать. Совершенно не понимаю в чем может быть проблема. К тому же хотелось бы чтобы при наведении движение контента было непрерывным, а не просто на 1 шаг и все. Наверное это надо реализовывать через цикл... но я не знаю как... Уважаемые гуру jQuery, подскажите пжл, ибо в тупике... :( |
Ну кто-нибудь, дайте хоть наводку - слово написано слитно :)
|
Даю на водку: интерфейсы, выполняющие какие-то действия при наведении мыши -- очень неудобные интерфейсы.
|
Следующим советом наверное будет отказаться еще от какой-нить "бредовой" идеи)) Спасибо, Kolyaj...
Вопрос все же не перестает быть для меня актуальным. Still need help. |
Народ! Неужели никто не в силах подсказать? (((
|
Следующий совет, использовать деньги, тобишь заказать кому нибудь из фрилансеров сделать :)
тута http://javascript.ru/forum/job/ копаться в чужом коде никому не хочется, по крайне мере бесплатно, поэтому вы не находите ответа на свои просьбы запросы... |
А не легче этот пример сделать без jquery?
Уже какой раз убеждаюсь, что очень часто лучше глянуть как выглядит и сделать тоже самое без jquery.Код получается даже меньше и работает быстрее. А вообще пример хороший и красивый. Спасибо , что здесь выложил. В jquery коде разобраться сложнее,чем сделать самому без него. Делал галерею, так вроде на jquery код огого. А мой код получился маленький. А ещё пришел к выводу, чтобы в полную силу использовать Jquery и особенно писать для него плагины надо уметь делать тоже самое без него. Хотя я им вообще не пользуюсь, один лишь раз исправлял какой-то плагин. http://javascript.ru/blog/mycoding/Galereya http://moc-081.ru |
Сделал вот так
// prev
$(opts.prev, root).mouseover(function() { self.prev() });
// next
$(opts.next, root).mouseover(function() { self.next() });
Вроде работает, но чтобы перелистнуть на новый приходится опять наводить. |
mycoding, спасибо тебе огромное... хотя бы сдвинусь с мертвой точки... :)
to sysya: спасибо тебе за очень полезный совет. Ты наверное не понял, что я не 100% готовый вариант тут требую во все горло, а просил совета или указания на мои ошибки... приведя пример того, о чем веду речь... |
Интересно, а как зациклить это движение? То есть при удержании мыши над стрелкой, скроллер прокручивал сожержимое до упора?
|
Кто-нибудь.... есть идеи на этот счет? подскажите плиз, бьюсь над этим уже не один день... ((
|
Цитата:
|
А если применять цикл, как сделать проверку на hover?
|
Народ, ну подскажите пжл куда копать в поисках решения проблемы... (((
|
$(элемент на который наводится мышь).hover(function(){//первый параметр, при наведении мыши на элемент
var setInt = setInterval(функция анимации, время в мс);//запускаем интервал
}, function(){//второй параметр, при выходе мыши из пространства элемента
clearInterval(setInt);//удаляем интервал, функция анимации больше не вызывается по окончании установленного времени
});
как то такнадо доработать конечно, но в эту сторону капайте... вот инфа ещё http://javascript.ru/setInterval |
Попробовал написать так:
$(opts.prev, root).mouseover(
function(){
var setInt = setInterval( function() { self.prev() } );
},
function(){
clearInterval(setInt);
}
);
Реакция на наведение нулевая... также пробовал вместо "mouseover" писать "hover" - тот же эффект. Может проще саму функцию движения изменить которая срабатывает при наведении???
next: function(time) {
this.move(1, time);
},
prev: function(time) {
this.move(-1, time);
},
Либо оставить все как есть, только сделать в цикле с проверкой на состояние наведения мыши на объект управления... то есть если мышь наведена выполняем функцию движения как она есть (продвигаем скролл на 1 раз), далее опять проверка... и при отсутствии наведения цикл завершается... Только я в javascript вообще не силен, подскажите синтаксис, и вообще можно ли реализовать то что я говорю в цикле?? Спасибо всем кто помогает, реально давно парюсь :( |
Я так понял вы совсем не знаете яваскрипт, а jquery только интуитивно:)
Так не правильно использовать mouseover. Такой синтаксис подходит для hover:
$(opts.prev, root).hover(
function(){
var setInt = setInterval( function() { self.prev() }, 300 );
},
function(){
clearInterval(setInt);
}
);
Так примерно. И изучайте javascript...Посмотрите реалтзацию зацикливания анимации http://mnp.in.ua/jquery_dlya_nachinaushih2.php |
Цитата:
Еще раз попробовал с добавлением числа как вы указали (я так понимаю в роли "скорости"). Все также нет эффекта. Я согласен что на уровне интуиции в jquery... потому ищу помощи у грамотных людей. |
в setInterval нет скорости, это время в милисекундах, по истечении которого запускается первый параметр этой функции. Поиском пользуйтесь, чтоб искать описание каких то незнакомых слов.
И ещё раз: Цитата:
|
Господа прошу помочь с синтаксисом, придумал следующую вещь.
Вместо того что щас есть (спасибо товарищу mycoding):
// prev
$(opts.prev, root).mouseover(
function() { self.prev() }
);
Пробую сделать в цикле:
// prev
$(opts.prev, root).mouseover(
while(курсор мыши над объектом "opts.prev, root") {
function() { self.prev() }
}
);
Next по аналогии... Не могу правильно написать проверку состояния наведения мыши... Возможно покажется нагромождением - фактически 2 раза проверяется состояние наведения курсора... Просто хочется чтобы цикл запускался только в случае наведения "$(opts.prev, root).mouseover"... Если конструкция совершенно не верная, подскажите пжл как сделать ее рабочей. |
Кто-нибудь может помочь с синтаксисом этого участка кода что я привел?
|
| Часовой пояс GMT +3, время: 09:36. |