Html 如何定制离子5中的离子范围?
我正在寻找一个解决方案,解决我当前的问题,即如何根据线框定制Html 如何定制离子5中的离子范围?,html,css,ionic-framework,ion-range-slider,Html,Css,Ionic Framework,Ion Range Slider,我正在寻找一个解决方案,解决我当前的问题,即如何根据线框定制离子范围。正如你在下面看到的,线框和我制作的实际作品之间的差异 线框设计 我的实际工作 在上面,您可以看到两者之间的区别。我的问题是,我能做些什么或解决方案来获得线框的实际外观。根据线框,当用户移动记号时,与记号对齐的标签也应为蓝色 这些是我的代码,我使用和生产我的实际工作 .html <div class="slidecontainer"> <ion-range
离子范围。正如你在下面看到的,线框和我制作的实际作品之间的差异
线框设计
我的实际工作
在上面,您可以看到两者之间的区别。我的问题是,我能做些什么或解决方案来获得线框的实际外观。根据线框,当用户移动记号时,与记号对齐的标签也应为蓝色
这些是我的代码,我使用和生产我的实际工作
.html
<div class="slidecontainer">
<ion-range
class="range-position"
min="5"
max="100"
dualknobs="true"
pin="false"
snaps="true"
ticks="false"
value="0"
snaps color="primary"
list='tickmarks'>
</ion-range>
<div id="tickmarks" class="tick-position">
<p>5</p>
<p>10</p>
<p>25</p>
<p>50</p>
<p>75</p>
<p>100</p>
</div>
</div>
希望你能帮助我,使我能继续我的任务。非常感谢您可以使用(ionChange)
事件使其正常工作
<ion-range
class="range-position"
min="5"
max="100"
dualknobs="true"
pin="false"
snaps="true"
ticks="false"
value="0"
step="25" // use step attribute for sure event value
snaps color="primary"
list='tickmarks'
(ionChange)="changeFunction($event)">
</ion-range>
<div id="tickmarks" class="tick-position">
<p [ngClass]="selectedValue == 0 ? 'active' : null">5</p>
<p [ngClass]="selectedValue == 25 ? 'active' : null">25</p>
<p [ngClass]="selectedValue == 50 ? 'active' : null">50</p>
<p [ngClass]="selectedValue == 75 ? 'active' : null">75</p>
<p [ngClass]="selectedValue == 100 ? 'active' : null">100</p>
</div>
您可以让离子范围下的记号标记对范围内的选定值作出反应,如下所示
将侦听ionChange
事件的函数添加到
。在组件类中使用该函数更新值。然后,您可以在模板中使用该值来指示应该突出显示哪个勾号(获取所选的CSS类)
range.component.html
-用于单个范围(一个旋钮)
-
{{number}}
range.component.html
-用于双旋钮
-
{{number}}
range.component.ts
-组件文件
@组件({
选择器:“应用程序范围”,
样式URL:['./range.component.scss']
templateUrl:“./range.component.html”
})
导出类范围组件{
currentValue=0;
currentDualValues={
下限:25,
上限:50
};
//对单滑块使用此选项
setValue($event:event):无效{
this.currentValue=parseInt($event.target作为HTMLInputElement).value,10);
}
//用于双滑块(双旋钮)
setDualValues($event:event):无效{
this.currentDualValues=JSON.parse(JSON.stringify(($event.target作为HTMLInputElement.value));
}
}
最后,在CSS中添加.selected
类,以根据需要设置所选数字的样式,例如(您可能需要更改ul.tick marks
的填充,以确保tick marks与范围选择器正确对齐):
range.component.scss
.range容器{
显示器:flex;
弯曲方向:立柱;
宽度:100%;
.勾号{
显示器:flex;
证明内容:之间的空间;
列表样式:无;
保证金:0;
填充:0;
李{
颜色:var(--离子颜色暗);
位置:相对位置;
&::之前{
背景色:var(--离子色暗);
内容:'';
显示:块;
高度:20px;
左:50%;
位置:绝对位置;
宽度:1px;
顶部:-20px;
}
&.选定{
颜色:var(--离子原色);
&::之前{
背景色:var(--离子原色);
}
}
}
}
}
另请参阅此内容以供参考。该解决方案将起作用。逻辑将像“显示隐藏概念”一样发挥作用。@Anuj否,它将只更改CSS类以突出显示选定的值。使用ngClass
或ngStyle
可以动态设置css样式。
<ion-range
class="range-position"
min="5"
max="100"
dualknobs="true"
pin="false"
snaps="true"
ticks="false"
value="0"
step="25" // use step attribute for sure event value
snaps color="primary"
list='tickmarks'
(ionChange)="changeFunction($event)">
</ion-range>
<div id="tickmarks" class="tick-position">
<p [ngClass]="selectedValue == 0 ? 'active' : null">5</p>
<p [ngClass]="selectedValue == 25 ? 'active' : null">25</p>
<p [ngClass]="selectedValue == 50 ? 'active' : null">50</p>
<p [ngClass]="selectedValue == 75 ? 'active' : null">75</p>
<p [ngClass]="selectedValue == 100 ? 'active' : null">100</p>
</div>
selectedValue;
changeFunction($event){
this.selectedValue = $event.detail.value;
}