温泉转盘 - 在中心显示当前项目
Onsen Carousel - Show Current Item In Centre
我正在尝试使用 Onsen 创建旋转木马,非常简单,但是我希望当前选择的项目位于中心。
我将 5 个项目的初始索引设置为 2,项目宽度设置为 30%。这允许显示多个项目,而第三个项目是最初选择的项目。有没有人知道如何让选中的项目始终显示在中间?
我还将把它改成无限旋转木马,这应该不会太棘手,但可能需要牢记。
基本代码如下...谢谢。
<ons-carousel modifier="brand-carousel direction="horizontal" item-width="30%" initial-index="2" swipeable>
<ons-carousel-item><img src="img/img1.png"/></ons-carousel-item>
<ons-carousel-item><img src="img/img1.png"/></ons-carousel-item>
<ons-carousel-item><img src="img/img1.png"/></ons-carousel-item>
<ons-carousel-item><img src="img/img1.png"/></ons-carousel-item>
<ons-carousel-item><img src="img/img1.png"/></ons-carousel-item>
</ons-carousel>
ons-carousel
项存储在零索引数组中。如果要动态添加项目,只需简单地获取数组长度,除以 2 并四舍五入为整数即可。使用 JS,您可以使用 setActiveCarouselItemIndex(index, options);
指定特定的活动项目。有关详细信息,请参考位于此处的用户指南:https://onsen.io/guide/overview.html#UsingCarousel
编辑:这是完整的工作代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="mobile-web-app-capable" content="yes" />
<meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link href='https://fonts.googleapis.com/css?family=Roboto:400,300italic,300,400italic,500,700,700italic,500italic' rel='stylesheet' type='text/css'>
<title>Onsen UI 2.0 Quickstart</title>
<script src="components/loader.js"></script>
<script src="lib/onsenui/js/onsenui.js"></script>
<link rel="stylesheet" href="lib/onsenui/css/onsenui.css" type="text/css" media="all" />
<link rel="stylesheet" href="lib/onsenui/css/onsen-css-components.css" type="text/css" media="all" />
<style>
ons-carousel-item {
display: table;
text-align: center;
}
.item-label {
display: table-cell;
vertical-align: middle;
color: white;
line-height: 1;
font-size: 48px;
font-weight: bold;
}
.cover-label {
text-align: center;
position: absolute;
left: 0px;
width: 100%;
bottom: 10px;
color: white;
}
</style>
<script>
function setIndex(){
var cnt = document.getElementById('myC').getCarouselItemCount();
var midItem = Math.floor(cnt/2);
document.getElementById('myC').setActiveCarouselItemIndex(midItem);
}
</script>
</head>
<body>
<ons-page>
<ons-carousel swipeable overscrollable auto-scroll fullscreen id="myC">
<ons-carousel-item style="background-color: gray;">
<div class="item-label">GRAY
<ons-button onclick="setIndex()">Click Me</ons-button></div>
</ons-carousel-item>
<ons-carousel-item style="background-color: #085078;">
<div class="item-label">BLUE</div>
</ons-carousel-item>
<ons-carousel-item style="background-color: #373B44;">
<div class="item-label">DARK</div>
</ons-carousel-item>
<ons-carousel-item style="background-color: #D38312;">
<div class="item-label">ORANGE</div>
</ons-carousel-item>
<ons-carousel-cover>
<div class="cover-label">Swipe left or right</div>
</ons-carousel-cover>
</ons-carousel>
</ons-page>
</body>
</html>
我正在尝试使用 Onsen 创建旋转木马,非常简单,但是我希望当前选择的项目位于中心。
我将 5 个项目的初始索引设置为 2,项目宽度设置为 30%。这允许显示多个项目,而第三个项目是最初选择的项目。有没有人知道如何让选中的项目始终显示在中间?
我还将把它改成无限旋转木马,这应该不会太棘手,但可能需要牢记。
基本代码如下...谢谢。
<ons-carousel modifier="brand-carousel direction="horizontal" item-width="30%" initial-index="2" swipeable>
<ons-carousel-item><img src="img/img1.png"/></ons-carousel-item>
<ons-carousel-item><img src="img/img1.png"/></ons-carousel-item>
<ons-carousel-item><img src="img/img1.png"/></ons-carousel-item>
<ons-carousel-item><img src="img/img1.png"/></ons-carousel-item>
<ons-carousel-item><img src="img/img1.png"/></ons-carousel-item>
</ons-carousel>
ons-carousel
项存储在零索引数组中。如果要动态添加项目,只需简单地获取数组长度,除以 2 并四舍五入为整数即可。使用 JS,您可以使用 setActiveCarouselItemIndex(index, options);
指定特定的活动项目。有关详细信息,请参考位于此处的用户指南:https://onsen.io/guide/overview.html#UsingCarousel
编辑:这是完整的工作代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="mobile-web-app-capable" content="yes" />
<meta http-equiv="Content-Security-Policy" content="default-src * data:; style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'">
<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
<link href='https://fonts.googleapis.com/css?family=Roboto:400,300italic,300,400italic,500,700,700italic,500italic' rel='stylesheet' type='text/css'>
<title>Onsen UI 2.0 Quickstart</title>
<script src="components/loader.js"></script>
<script src="lib/onsenui/js/onsenui.js"></script>
<link rel="stylesheet" href="lib/onsenui/css/onsenui.css" type="text/css" media="all" />
<link rel="stylesheet" href="lib/onsenui/css/onsen-css-components.css" type="text/css" media="all" />
<style>
ons-carousel-item {
display: table;
text-align: center;
}
.item-label {
display: table-cell;
vertical-align: middle;
color: white;
line-height: 1;
font-size: 48px;
font-weight: bold;
}
.cover-label {
text-align: center;
position: absolute;
left: 0px;
width: 100%;
bottom: 10px;
color: white;
}
</style>
<script>
function setIndex(){
var cnt = document.getElementById('myC').getCarouselItemCount();
var midItem = Math.floor(cnt/2);
document.getElementById('myC').setActiveCarouselItemIndex(midItem);
}
</script>
</head>
<body>
<ons-page>
<ons-carousel swipeable overscrollable auto-scroll fullscreen id="myC">
<ons-carousel-item style="background-color: gray;">
<div class="item-label">GRAY
<ons-button onclick="setIndex()">Click Me</ons-button></div>
</ons-carousel-item>
<ons-carousel-item style="background-color: #085078;">
<div class="item-label">BLUE</div>
</ons-carousel-item>
<ons-carousel-item style="background-color: #373B44;">
<div class="item-label">DARK</div>
</ons-carousel-item>
<ons-carousel-item style="background-color: #D38312;">
<div class="item-label">ORANGE</div>
</ons-carousel-item>
<ons-carousel-cover>
<div class="cover-label">Swipe left or right</div>
</ons-carousel-cover>
</ons-carousel>
</ons-page>
</body>
</html>