Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Помогите изменить скроллер содержимого (https://javascript.ru/forum/jquery/12022-pomogite-izmenit-skroller-soderzhimogo.html)

Alexanderos 02.10.2010 01:09

Кто-нибудь.... есть идеи на этот счет? подскажите плиз, бьюсь над этим уже не один день... ((

Riim 02.10.2010 01:31

Цитата:

Сообщение от Alexanderos
Интересно, а как зациклить это движение? То есть при удержании мыши над стрелкой, скроллер прокручивал сожержимое до упора?

самое простое (скорей всего не лучшее): при mouseover создаем interval вызывающий self.prev() , при mouseout обнуляем interval.

Alexanderos 02.10.2010 22:09

А если применять цикл, как сделать проверку на hover?

Alexanderos 05.10.2010 00:04

Народ, ну подскажите пжл куда копать в поисках решения проблемы... (((

sysya 05.10.2010 07:23

$(элемент на который наводится мышь).hover(function(){//первый параметр, при наведении мыши на элемент
var setInt = setInterval(функция анимации, время в мс);//запускаем интервал
}, function(){//второй параметр, при выходе мыши из пространства элемента
clearInterval(setInt);//удаляем интервал, функция анимации больше не вызывается по окончании установленного времени
});
как то так
надо доработать конечно, но в эту сторону капайте...
вот инфа ещё http://javascript.ru/setInterval

Alexanderos 05.10.2010 20:12

Попробовал написать так:
$(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 вообще не силен, подскажите синтаксис, и вообще можно ли реализовать то что я говорю в цикле??

Спасибо всем кто помогает, реально давно парюсь :(

sysya 06.10.2010 16:41

Я так понял вы совсем не знаете яваскрипт, а 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

Alexanderos 06.10.2010 17:27

Цитата:

Сообщение от Alexanderos (Сообщение 73249)
Реакция на наведение нулевая... также пробовал вместо "mouseover" писать "hover" - тот же эффект.

Может "mouseover" тут не подойдет, вот только я пробовал и по вашему...

Еще раз попробовал с добавлением числа как вы указали (я так понимаю в роли "скорости"). Все также нет эффекта. Я согласен что на уровне интуиции в jquery... потому ищу помощи у грамотных людей.

sysya 06.10.2010 20:20

в setInterval нет скорости, это время в милисекундах, по истечении которого запускается первый параметр этой функции. Поиском пользуйтесь, чтоб искать описание каких то незнакомых слов.

И ещё раз:
Цитата:

И изучайте javascript...

Посмотрите реалтзацию зацикливания анимации http://mnp.in.ua/jquery_dlya_nachinaushih2.php
читайте, изучайте яваскрипт(основы хотяб) и jquery получше или подождите до завтра, я свою галерею делаю, буду делать такую же штуку... но ничего не обещаю...

Alexanderos 08.10.2010 10:21

Господа прошу помочь с синтаксисом, придумал следующую вещь.
Вместо того что щас есть (спасибо товарищу 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, время: 16:50.