javascript - 如何调整页面在点击轮播时滚动到中心?

标签 javascript jquery html

我正在尝试获取它,以便当您单击轮播时,页面将进行调整以使轮播位于中心。当您点击他们的轮播时,该网站( http://studionewwork.com/ )会显示此内容。我仍在学习 Jquery,所以我还不擅长命令。

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

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


$('.owl-demo').on('click', function(e) { 
  var el = $( e.target.getAttribute('href') );
  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);
});

最佳答案

嘿,我更新了你的 fiddle 以使其正常工作:http://jsfiddle.net/8bJUc/649/

基本上,您使用 $(".owl-demo") 就好像它是一个类,但它是一个 ID。然后 onClick 函数尝试获取被单击的元素,但失败。

var el = $( e.target.getAttribute('href') );

这行基本上说的是:

从单击的元素中获取 href 属性,并使用 jQuery 查找与 href 属性匹配的任何元素。我删除了它,因为您没有在任何地方指定 href 属性。

$('.owl-carousel').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);
});

请注意,您发布的示例轮播在我的 Macbook Air 11'' 上无法按预期工作。每当我点击它时,轮播就会跳来跳去。

关于javascript - 如何调整页面在点击轮播时滚动到中心?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34909308/

相关文章:

javascript - 使用 XMLHttpRequest 超时

javascript - 如何在 Angular 2 中单击表格中的图标时显示其他行?

php - 验证后Javascript不会停止提交到服务器

jquery - 如何使用 jQuery 查找 HTML 表格的列号

javascript - 加载页面时将值发布到相关下拉菜单

html - 我无法在其容器内正确对齐我的导航菜单

javascript - 如何使用 jquery 查找只读文本字段

javascript - 鼠标单击并拖动而不是水平滚动条(查看子 Div 的全部内容)

html - 覆盖跨度样式

html - 在 HTML/CSS 中实现下拉列表