我正在使用jquery ui中的一个滑块,其中每个记号的宽度为1px。
这就是它在Firefox和Safari中的外观:
这是对的。
但这就是它在Chrome中的外观:
这是chrome独有的奇怪故障。我试过了
box-sizing
和
box-shadow
在看了类似的问题之后,但我并没有成功地使这些记号看起来正确。
如果设置为2px:
所有的滴答声都出现了,但仍然是油滑的。
如果需要代码:
HTML格式:
<div id="slider"></div>
JS公司:
function createSlider() {
$("#slider").slider({
min: 1,
max: numOfPages * 3,
step: 1,
range: false,
orientation: 'horizontal',
create: function(event, ui) {
setSliderTicks(event.target);
}
});
}
function setSliderTicks(){
var $slider = $('#slider');
var max = $slider.slider("option", "max");
var spacing = 100 / (max - 1);
console.log('Spacing: ' + spacing);
$slider.find('.tickmark').remove();
for (var i = 0; i < max ; i++) {
$('<span class="tickmark"></span>').css('left', (spacing * i) + '%').appendTo($slider);
}
}
CSS:
#slider {
width: ;
margin: 0 auto;
}
.ui-slider-horizontal {
height: 3px;
width: 75%;
}
.ui-slider {
border: 0;
background-color: #ededed;
border-radius: 6px;
top: 50%;
}
.ui-slider-handle {
width: 19px;
height: 18px;
background-color: #ededed;
border-radius: 50%;
border: none;
cursor: pointer;
top: 50%;
margin-top: -4px;
}
.ui-slider-handle:hover {
opacity: 0.8;
}
.tickmark {
display:inline-block;
width: 1px;
background-color: #ededed;
height: 12px;
position:absolute;
top: -150%;
}
滑块来自
https://code.jquery.com/ui/1.12.1/jquery-ui.min.js
和
https://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css