- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的目标是制作一个看起来像这样的轮播:
从小到大。
如果您不知道自己在看什么,这里有 5 张图片/元素,但只有中间一张以全尺寸显示。中间那个旁边的图片更小,外面的图片更小。
但实际上实现这一点的 Owl Carousel 类(medium
、big
)已经被弃用了。
我想知道是否可以在我的 Owl Carousel 中制作类似的东西?
这是我在 jsfiddle 中所做的链接
请改变我的 fiddle 。
反对者请先评论
/**
* Plugin for linking multiple owl instances
* @version 1.0.0
* @author David Deutsch
* @license The MIT License (MIT)
*/
;(function($, window, document, undefined) {
/**
* Creates the Linked plugin.
* @class The Linked Plugin
* @param {Owl} carousel - The Owl Carousel
*/
var Linked = function(carousel) {
/**
* Reference to the core.
* @protected
* @type {Owl}
*/
this._core = carousel;
/**
* All event handlers.
* @protected
* @type {Object}
*/
this._handlers = {
'dragged.owl.carousel changed.owl.carousel': $.proxy(function(e) {
if (e.namespace && this._core.settings.linked) {
this.update(e);
}
}, this),
'linked.to.owl.carousel': $.proxy(function(e, index, speed, standard, propagate) {
if (e.namespace && this._core.settings.linked) {
this.toSlide(index, speed, propagate);
}
}, this)
};
// register event handlers
this._core.$element.on(this._handlers);
// set default options
this._core.options = $.extend({}, Linked.Defaults, this._core.options);
};
/**
* Default options.
* @public
*/
Linked.Defaults = {
linked: false
};
/**
* Updated linked instances
*/
Linked.prototype.update = function(e) {
this.toSlide( e.relatedTarget.relative(e.item.index) );
};
/**
* Carry out the to.owl.carousel proxy function
* @param {int} index
* @param {int} speed
* @param {bool} propagate
*/
Linked.prototype.toSlide = function(index, speed, propagate) {
var id = this._core.$element.attr('id'),
linked = typeof(this._core.settings.linked) === 'string' ? this._core.settings.linked.split(',') : this._core.settings.linked;
if ( typeof propagate == 'undefined' ) {
propagate = true;
}
index = index || 0;
if ( propagate ) {
$.each(linked, function(i, el){
$(el).trigger('linked.to.owl.carousel', [index, 300, true, false]);
});
} else {
this._core.$element.trigger('to.owl.carousel', [index, 300, true]);
if ( this._core.settings.current ) {
this._core._plugins.current.switchTo(index);
}
}
};
/**
* Destroys the plugin.
* @protected
*/
Linked.prototype.destroy = function() {
var handler, property;
for (handler in this._handlers) {
this.$element.off(handler, this._handlers[handler]);
}
for (property in Object.getOwnPropertyNames(this)) {
typeof this[property] != 'function' && (this[property] = null);
}
};
$.fn.owlCarousel.Constructor.Plugins.linked = Linked;
})(window.Zepto || window.jQuery, window, document);
$(".carousel_1").owlCarousel({
nav: false,
items: 1,
margin:1,
linked: ".carousel_2"
});
var sync2 = $(".carousel_2");
$(sync2).owlCarousel({
nav: true,
loop:true,
items: 4,
margin:10,
center:true,
linked: sync2.prev()
}).on('initialized.owl.carousel linked.to.owl.carousel', function() {
sync2.find('.owl-item.current').removeClass('current');
var current = sync2.find('.owl-item.active.center').length ? sync2.find('.owl-item.active.center') : sync2.find('.owl-item.active').eq(0);
current.addClass('current');
});
我试过的!!!
我尝试在第一个 carousel(carousel_1) 配置结束时添加这部分代码
在那里我尝试选择第一个和最后一个元素并给它们类名,在这个类名中我将更改它们 width
或 height
。
但是这个解决方案只需要第一个和最后一个元素我需要从左到右到中心的所有元素
在这个解决方案中也没有像那样写
if(index == 1)
任何 index 都可以不是第一个。这将向一个元素添加两个类。
checkClasses();
$(".carousel_2").on('translated.owl.carousel', function(event) {
checkClasses();
});
function checkClasses(){
var total = $('.carousel_2 .owl-stage .owl-item.active').length;
$('.carousel_2 .owl-stage .owl-item').removeClass('firstActiveItem lastActiveItem');
$('.carousel_2 .owl-stage .owl-item.active').each(function(index){
if (index === 0) {
// this is the first one
$(this).addClass('firstActiveItem');
}
if (index === total - 1 && total>1) {
// this is the last one
$(this).addClass('firstActiveItem');
}
});
}
最佳答案
您的 CSS 中的一段代码将适用于它,
.owl-carousel .owl-stage {
max-height: 200px;
display: flex;
align-items: center;
}
.carousel_2 .active.center + .active,.carousel_2 .active:first-child,
.carousel_2 :not(.active) + .active{
height:150px;
}
.carousel_2 .active.center{
height:200px;
}
.owl-carousel .owl-item img{height:100%}
更新 7
和/或 n
个元素,css 将不起作用,但您可以使用 jQuery 代码,例如,
$('.h-150px').removeClass('h-150px');
$('.h-200px').removeClass('h-200px');
// add class to just next/prev active element
current.next('.active').addClass('h-150px').end().prev('.active').addClass('h-150px');
// add class to just second next/prev active element
current.next('.active').next('.active').addClass('h-110px').end()
.end().prev('.active').prev('.active').addClass('h-110px');
关于javascript - 从小到大 Owl Carousel 中心模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51537152/
这个问题已经有答案了: 已关闭11 年前。 Possible Duplicate: How to align a to the middle of the page 这是一个简单的问题,应该有一个简
我想知道如何在屏幕中央的ListView中生成2个itens。 class _CategoriesState extends State { List categories = ["Anterio
我需要修复 UICollectionView 的一个小问题,当在 6s 设备尺寸上时,我得到如下布局: 但是,我想知道将它们居中以使其成为两条线的最佳方法是什么,或者我应该将它们缩小一点以便可以放置其
我尝试在 UIImageView 中居中 CAShapeLayer 但没有成功,我找到了解决方案,将其(CAShapeLayer)添加到 UIVIew,然后将 UIVIew 添加到 ImageView
一直在从线性布局和相对布局切换,因为我想实现图像的居中。 显示图片:
* { margin:0; padding:0; } /** General Style Info **/ body { background: #003d4c; co
我目前正在尝试修改我在 Wordpress 上的 Royal Slider 插件 (http://dimsemenov.com/plugins/royal-slider/) 我的目标是将所有标题的文本
我已经坚持了一段时间,因此简化了我的要求。当您单击标记时,信息窗口将打开,当用户缩放时,我希望该标记位于 map 的中心。这不起作用,但我认为它很接近: function bindInfoWindow
/* Linked Styles */ body { padding: 0 !important;
这个问题在这里已经有了答案: How do I center floated elements? (12 个答案) 关闭 7 年前。
这个问题在这里已经有了答案: Is there an equivalent to background-size: cover and contain for image elements? (1
我试图让我的页眉停留在页面的中间,不管我在什么窗口大小。 我试过使用 Bootstrap。 StackOverflow 还有这个 CSS。 .section-t
我有一个 1600 像素宽的页面。主要区域虽然只有 900 像素宽。我有一个导航应该固定在页面的中心(它是)。我的问题是当我打开页面时,页面固定在左侧而不是在打开时居中。当用户访问该网站时,我需要做什
我正在尝试找到 View 的中心。对于非旋转 View ,该值是正确的,但对于旋转 View ,它不正确,因为中心 (0,0) 正在旋转。在缩放的情况下,即使缩放后宽度和高度也保持不变 我正在使用以下
预期效果是将 Kartennummer 和 Passwort 集中。 这怎么可能? 我为此使用了一个自定义类: import 'package:flutter/material.dart'; impo
我管理着许多 Maven 项目。他们中的大多数部署到我们的内部 maven 存储库。现在我想开始向 Maven Central 发布一个项目。到目前为止,我有一个父 POM,它指定了我们内部存储库的
我试图锚定两个进展,但我看不到获得预期结果的方法。 我希望左边的进度条固定在左边,右边的条固定在中心固定(如下图所示) (下图显示调整大小的表格) 我尝试将控件放在具有各种 anchor 的停靠面板上
我正在玩 Angular 模态 ui 对话框。我想知道有什么方法可以让它居中?我发现了一个类似的问题: Twitter Bootstrap - Center Modal Dialog 但无法使其工作,
是否可以将值标签放置在条形上,使它们位于条形的中心? 如果我设置条形 align: "center",则条形上的标签将关闭且不居中。 $(function() { var d
http://www.asp.net/signalr/overview/signalr-20/getting-started-with-signalr-20/tutorial-signalr-20-s
我是一名优秀的程序员,十分优秀!