javascript - 单击按钮使轮播居中错误(Jquery)

标签 javascript jquery

目前,如果您单击任何编号按钮、下一个/上一个按钮或轮播中的图像,脚本将调整轮播以将其移动到视口(viewport)的中心。但是,我注意到,如果您单击与第二个轮播相关的任何按钮,页面将一直向后滚动并调整到第一个轮播。我怎样才能调整正确的轮播?例如,按与 #2 轮播相关的任何按钮可调整 #2 轮播,或按 #3 轮播的任何按钮可调整 #3 轮播。

$(document).ready(function() {
  $("#owl-demo").owlCarousel({
    navigation: true,
    pagination: true,
    lazyLoad: true
  });
});

$(document).ready(function() {
  $("#owl-demo2").owlCarousel({
    navigation: true,
    pagination: true,
    lazyLoad: true
  });
});

var el = $('.owl-carousel .lazyOwl');
$('.owl-carousel, .owl-thumb-item').on('click', function(e) {

  //  var el = $(".lazyOwl", this);
  var elOffset = el.offset().top;
  var elHeight = el.height();
  var windowHeight = $(window).height();
  var offset;

  if (elHeight < windowHeight) {
    offset = elOffset - ((windowHeight / 2) - (elHeight / 2));
  } else {
    offset = elOffset;
  }
  var speed = 700;
  $('html, body').animate({
    scrollTop: offset
  }, speed);
});

var animations = new Array();
// queue all
$(".owl-thumb-item").each(function() {
  animations.push($(this));
});

// start animating
doAnimation(animations.shift());

function doAnimation(image) {
  image.fadeIn("slow", function() {
    // wait until animation is done and recurse if there are more animations
    if (animations.length > 0) doAnimation(animations.shift());
  });
}

http://jsfiddle.net/8bJUc/662/

最佳答案

你几乎猜对了!而不是:

//var el = $(".lazyOwl", this);

你应该使用这个:

var el = $(this);

http://jsfiddle.net/8bJUc/665/

跳跃“延迟”是由动画引起的。如果删除动画,它会立即显示正确的位置:

//  $('html, body').animate({
//    scrollTop: offset
//  }, speed);
  $('html, body').scrollTop(offset);

关于javascript - 单击按钮使轮播居中错误(Jquery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35048177/

相关文章:

javascript - 将 JSON 附加到 HTML

jquery - 仅使用 jQuery 添加一次 OnClick 处理程序 - 即使再次调用

javascript - ReactJS 导航到新位置并刷新窗口

c# - 从 UserControl 的资源文件运行 jQuery 脚本到客户端的脚本管理器

java - 为什么当我收到 ActionMessage 时,我的表中的值会被删除?

javascript - jquery : Can I return back to same click event after user clicks on another element?

javascript - 转换对象数组的最有效方法

javascript - Chart.js:是否可以在单击堆积条形图中获取数据集的标签?

javascript - 如何防止js函数在页面加载时执行

C# 控制 HTML 元素