【发布时间】:2017-04-26 20:13:01
【问题描述】:
我正在努力让它正常工作。我想在 jquery mobile 的滑块小部件中添加刻度线和自定义标签 (https://api.jquerymobile.com/slider/) 首先我想在 0、25、50、75 和 100 处添加刻度线。在每个刻度线上方我想要一个自定义字符串/标签.最后,我希望标签随着页面大小的变化与 jquery 滑块一起缩放。现在我可以添加不带刻度的标签,但它只适合一种屏幕尺寸。
$( ".ui-content" ).on( "slidestop", function( event, ui ) {
event.preventDefault();
event.stopImmediatePropagation();
var newState = $("#slider-0").val();
} );
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes"/>
<link rel="stylesheet" href="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"/>
<script src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script src="https://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>
<body>
<div data-role="page">
<div data-role="main" class="ui-content" style="padding: 40px;">
<div role="main" class="ui-content">
<div class="labels" >
<label for="points" style="display: inline; padding: 55px;">volume off</label>
<label style="display: inline; padding: 50px;" for="points">quiet</label>
<label style="display: inline; padding: 50px;" for="points">normal</label>
<label style="display: inline; padding: 50px" for="points">loud</label>
<label style="display: inline; padding: 50px" for="points">max</label>
</div>
<input type="range" data-highlight="true" data-popup-enabled="true" name="slider-0" id="slider-0" value="50" min="0" max="100" data-theme="b" data-track-theme="a"/>
</div>
</div>
</div>
</body>
</html>
我曾尝试使用 CSS % 进行填充,但这并没有按预期工作。我也尝试过jQuery UI Slider Labels Under Slider、Add tick marks to jQuery slider? 和Set font on custom span jQuery Mobile slider labels 的建议,但我无法让刻度和标签与滑块保持一致。我认为这将是一个简单的格式问题,但我无法将所有内容放在一起。任何帮助是极大的赞赏。
编辑
经过更多研究后,我偶然发现了这个博客:https://css-tricks.com/equidistant-objects-with-css/ 从中我尝试了使用 flex 的选项。所以我将 flex 样式添加到我的标签类中以获得<div class="labels" style="display: flex; justify-content: space-between;">。我在 chrome 和 safari 上对此进行了测试,它似乎工作正常。但我仍然不确定如何让蜱虫工作。
【问题讨论】:
标签: javascript jquery css jquery-ui jquery-mobile