Показать сообщение отдельно
  #9 (permalink)  
Старый 29.06.2016, 14:39
Аспирант
Отправить личное сообщение для alecto Посмотреть профиль Найти все сообщения от alecto
 
Регистрация: 12.11.2014
Сообщений: 84

добрый день.
переделал скрипт, заменив его следующим:

var tempTriger = 0;

		$('.view-tury.view-display-id-page_1 .views-col').mousemove(function(e) {


			if (tempTriger == 0) {
				var tempThis = $(this);
				$("#main").append('<div id="follower">' + $(tempThis).html() + '</div>');
				$('#follower').show();
				tempTriger = 1
			}

      var tempLeft = e.pageX + 325;
      if ( $(window).width() > tempLeft ) {
        $('#follower').offset({
          left: e.pageX + 20,
          top: e.pageY + 30
        });
      } else {
        $('#follower').offset({
          left: e.pageX - 300,
          top: e.pageY + 30
        });
      }

		});

		$('.view-tury.view-display-id-page_1 .views-col').mouseleave(function() {
			$("#follower").remove(); 
			tempTriger = 0
		});


т.е. собрал плавающий за курсором мышки блок, который генерируется при из сетки, при наведении на определенный блок.
эта часть вроде работает.

затем, что бы выключить срабатывание этого кода при случайной проводке мыши, попробовал завернуть его в код таймера, по аналогии выше.
получился следующий код:

var tempTriger = 0;
    var TimerInterval;

		$('.view-tury.view-display-id-page_1 .views-col').mousemove(function(e) {

			var tempThis = $(this);
      TimerInterval = setTimeout(function(){

			if (tempTriger == 0) {
				$("#main").append('<div id="follower">' + $(tempThis).html() + '</div>');
				$('#follower').show();
				tempTriger = 1
			}

      var tempLeft = e.pageX + 325;
      if ( $(window).width() > tempLeft ) {
        $('#follower').offset({
          left: e.pageX + 20,
          top: e.pageY + 30
        });
      } else {
        $('#follower').offset({
          left: e.pageX - 300,
          top: e.pageY + 30
        });
      }

		}, 500);

		});

		$('.view-tury.view-display-id-page_1 .views-col').mouseleave(function() {
			$("#follower").remove(); 
			tempTriger = 0
      clearTimeout(TimerInterval);
		});


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

Последний раз редактировалось alecto, 29.06.2016 в 15:42.
Ответить с цитированием