Как заставить jQuery выполнять одну операцию при наведении курсора мыши, а другую - при нажатии кнопки мыши? - PullRequest
1 голос
/ 19 января 2011

Я создаю фотогалерею, в которой есть два способа просмотра изображений: первый - при наведении мыши, чтобы он вызывал изображение предварительного просмотра всплывающей подсказки, а второй - при нажатии, чтобы переместить зрителя на новую страницу с изображением предварительного просмотра и больше информации об изображении, как и на iStock Photo: http://www.istockphoto.com/stock-photo-2159036-hot-air-balloons.php

Вы можете посмотреть мою страницу разработки здесь: http://ee.rouviere.com/%5Ehtml/photography/index.html

В настоящее время я использую fancybox, который прекрасно работает, чтобы вызвать изображение предварительного просмотра, когда вы нажимаете на миниатюру. Тем не менее, я хотел бы изменить это так, чтобы он появлялся, когда вы наводите курсор мыши на миниатюру. Как и на этой странице: http://www.webinventif.fr/wp-content/uploads/projets/tooltip/02/ На самом деле это было бы идеально, если при нажатии на изображение вы переходите на страницу сведений об изображении, а не просто загружаете изображение в новом окне.

В настоящее время код fancybox jQuery выглядит так:

<script type="text/javascript">
jQuery(document).ready(function() {
    $("a.view-preview").fancybox({
        'titleShow'     : false,
        'transitionIn'  : 'elastic',
        'transitionOut' : 'elastic'
    });
});
</script>

Буду признателен за любую помощь в этом деле. Спасибо!

1 Ответ

2 голосов
/ 19 января 2011

Звучит так, будто вы хотите всплывающую подсказку вместо лайтбокса (fancybox). Попробуйте использовать плагин всплывающей подсказки, например, jQueryTools Tooltip .


Обновление: я обновил код плагина для работы со следующим макетом HTML. Замените # в теге <a> страницей, на которую вы хотите перейти, когда пользователь нажимает на изображение. Также, здесь демо .

<ul>
  <li>
    <a href="#">
      <img class="preview" src="http://www.webinventif.fr/wp-content/uploads/projets/tooltip/02/1s.jpg" data-fullimg="http://www.webinventif.fr/wp-content/uploads/projets/tooltip/02/1.jpg" data-caption="Lake and a mountain" alt="gallery thumbnail" />
    </a>
  </li>
  <li>
    <a href="#">
      <img class="preview" src="http://www.webinventif.fr/wp-content/uploads/projets/tooltip/02/2s.jpg" data-fullimg="http://www.webinventif.fr/wp-content/uploads/projets/tooltip/02/2.jpg" data-caption="Fly fishing" alt="gallery thumbnail" />
    </a>
  </li>
  <li>
    <a href="#">
      <img class="preview" src="http://www.webinventif.fr/wp-content/uploads/projets/tooltip/02/3s.jpg" data-fullimg="http://www.webinventif.fr/wp-content/uploads/projets/tooltip/02/3.jpg" data-caption="Autumn" alt="gallery thumbnail" />
    </a>
  </li>
  <li>
    <a href="#">
      <img class="preview" src="http://www.webinventif.fr/wp-content/uploads/projets/tooltip/02/4s.jpg" data-fullimg="http://www.webinventif.fr/wp-content/uploads/projets/tooltip/02/4.jpg" data-caption="Skiing on a mountain" alt="gallery thumbnail" />
    </a>
  </li>
</ul>

Это обновленный скрипт:

/*
 * Image preview script
 * powered by jQuery (http://www.jquery.com)
 *
 * written by Alen Grakalic (http://cssglobe.com)
 *
 * for more info visit http://cssglobe.com/post/1695/easiest-tooltip-and-image-preview-using-jquery
 *
 */

this.imagePreview = function(){
  /* CONFIG */

    xOffset = 10;
    yOffset = 30;

    // these 2 variable determine popup's distance from the cursor
    // you might want to adjust to get the right result

  /* END CONFIG */
  $("img.preview").hover(function(e){
    var t = $(this).attr('data-caption');
    var c = (t != "") ? "<br/>" + t : "";
    $("body").append("<p id='preview'><img src='"+ $(this).attr('data-fullimg') +"' alt='Image preview' />"+ c +"</p>");
    $("#preview")
      .css("top",(e.pageY - xOffset) + "px")
      .css("left",(e.pageX + yOffset) + "px")
      .fadeIn("fast");
  }, function(){
    $("#preview").remove();
  });
  $("img.preview").mousemove(function(e){
    $("#preview")
      .css("top",(e.pageY - xOffset) + "px")
      .css("left",(e.pageX + yOffset) + "px");
  });
};

// starting the script on page load
$(document).ready(function(){
  imagePreview();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...