- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我使用 html、css 和 javascript 创建了价格范围 slider 。它在 google chrome 和 opera 浏览器中运行良好,但在 mozzila firefox 浏览器中无法运行。
请参阅下面提到的屏幕截图,这是我尝试在 mozzila firefox 浏览器中运行它时得到的。我无法确定问题所在。
我无法在此处添加图片,但这是图片链接:Screenshot of the issue
谁能帮我解决这个问题?
// Custom price range slider created by Pawan Mall | www.pawanmall.net
let rangeSlider = ((containerSelector, minSelector, maxSelector, selectionSelector, inputCallback, changeCallback) => {
inputCallback = inputCallback || function () { };
changeCallback = changeCallback || function () { };
let timeout;
let sliderContainer = document.querySelector(containerSelector);
let sliderMinElement = document.querySelector(minSelector);
let sliderMaxElement = document.querySelector(maxSelector);
let sliderSelectionElement = document.querySelector(selectionSelector);
let values = { min: sliderMinElement.value, max: sliderMaxElement.value };
sliderMinElement.addEventListener('input', e => {
sliderTimeout(() => { valueChanged(e); });
});
sliderMaxElement.addEventListener('input', e => {
sliderTimeout(() => { valueChanged(e); });
});
sliderMinElement.addEventListener('change', () => { changeCallback(values); });
sliderMaxElement.addEventListener('change', () => { changeCallback(values); });
return {
setHandles: data => {
data = data || {};
if (data.min) {
sliderMinElement.value = data.min;
valueChanged({ target: sliderMinElement });
}
if (data.max) {
sliderMaxElement.value = data.max;
valueChanged({ target: sliderMaxElement });
}
}
};
function valueChanged(event) {
if (event.target === sliderMinElement && +sliderMinElement.value >= +sliderMaxElement.value) {
sliderMinElement.value = +sliderMaxElement.value - 5;
return event.preventDefault();
}
if (event.target === sliderMaxElement && +sliderMinElement.value >= +sliderMaxElement.value) {
sliderMaxElement.value = +sliderMinElement.value + 5;
return event.preventDefault();
}
values.min = sliderMinElement.value;
values.max = sliderMaxElement.value;
sliderSelectionElement.style.left = +sliderMinElement.value / +sliderMaxElement.getAttribute('max') * 100 + '%';
sliderSelectionElement.style.right = +sliderMaxElement.value / +sliderMaxElement.getAttribute('max') * -100 + 100 + '%';
inputCallback(values);
}
function sliderTimeout(callback) {
clearTimeout(timeout);
timeout = setTimeout(callback, 10);
}
})('.range-slider', '.range-slider-min', '.range-slider-max', '.range-slider-selection', values => {
// console.log('values changed!', values);
// document.querySelector('.display1').innerHTML = '₹ '+ values.min + ', ₹ ' + values.max;
document.querySelector('.minmaxprice').value = values.min + ',' + values.max;
document.querySelector('.minprice').innerHTML = '₹ ' + values.min;
document.querySelector('.maxprice').innerHTML = '₹ ' + values.max;
}, values => {
// console.log('change done!', values);
});
rangeSlider.setHandles({ min: 5000, max: 250000 });
// console.log('inited!');
// https://seiyria.com/bootstrap-slider/#example-13
// $("#BudgetRange").slider({ min: 5000, max: 250000, value: [25000, 55000], focus: true });
/* Custom price range slider created by Pawan Mall | www.pawanmall.net */
.range-slider {
margin: 0 0;
position: relative;
height: 20px;
}
.range-slider::before,
.range-slider-selection {
content: "";
position: absolute;
z-index: 2;
top: 50%;
margin-top: -2px;
height: 3px;
z-index: 2;
}
.range-slider-selection {
background: orange;
left: 0px;
right: 0px;
}
.range-slider::before {
background: #ccc;
left: 0px;
right: 0px;
}
.range-slider-min,
.range-slider-max {
pointer-events: none;
position: absolute;
overflow: hidden;
left: 0;
top: 0;
width: 100%;
outline: none;
-webkit-appearance: none;
}
.range-slider-min::-webkit-slider-thumb,
.range-slider-max::-webkit-slider-thumb {
-webkit-appearance: none;
appearance: none;
pointer-events: all;
position: relative;
z-index: 3;
outline: 0;
width: 20px;
height: 20px;
border-radius: 50%;
border: 1px solid #ddd;
background: #fff;
}
.range-slider-min:active::-webkit-slider-thumb,
.range-slider-max:active::-webkit-slider-thumb {
background: #f3f3f3;
}
.minmaxprice {
width: 200px;
text-align: center;
margin: 0 auto;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<div class="container m-3 p-3">
<div class="row mt-2">
<div class="col-md-6 col-sm-6 col-xs-6 col-lg-6">
<b class="minprice">₹ 5,000</b>
</div>
<div class="col-md-6 col-sm-6 col-xs-6 col-lg-6 text-right">
<b class="maxprice">₹ 2,50,000</b>
</div>
</div>
<div class="row mt-2">
<div class="col-md-12">
<div class="range-slider"><span class="range-slider-selection"></span>
<input class="range-slider-min" type="range" min="5000" max="250000"
step="1" value="5000" />
<input class="range-slider-max" type="range" min="5000" max="250000"
step="1" value="250000" />
<br />
<input type="hidden" class="minmaxprice" name="pricerange" value="" />
</div>
</div>
</div>
</div>
最佳答案
您已经为范围 slider 使用了 Webkit 特定的前缀伪元素样式。
::-webkit-slider-thumb
但没有考虑到 Mozilla 和 Microsoft 有自己的前缀:
您至少必须实现 Mozilla 版本,但应考虑同时实现这两个版本。
从有关此技术的 MDN 站点,点击此链接以获得正确实现的跨浏览器 slider :https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/
input[type=range] {
-webkit-appearance: none;
margin: 18px 0;
width: 100%;
}
input[type=range]:focus {
outline: none;
}
input[type=range]::-webkit-slider-runnable-track {
width: 100%;
height: 8.4px;
cursor: pointer;
animate: 0.2s;
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
background: #3071a9;
border-radius: 1.3px;
border: 0.2px solid #010101;
}
input[type=range]::-webkit-slider-thumb {
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
border: 1px solid #000000;
height: 36px;
width: 16px;
border-radius: 3px;
background: #ffffff;
cursor: pointer;
-webkit-appearance: none;
margin-top: -14px;
}
input[type=range]:focus::-webkit-slider-runnable-track {
background: #367ebd;
}
input[type=range]::-moz-range-track {
width: 100%;
height: 8.4px;
cursor: pointer;
animate: 0.2s;
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
background: #3071a9;
border-radius: 1.3px;
border: 0.2px solid #010101;
}
input[type=range]::-moz-range-thumb {
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
border: 1px solid #000000;
height: 36px;
width: 16px;
border-radius: 3px;
background: #ffffff;
cursor: pointer;
}
input[type=range]::-ms-track {
width: 100%;
height: 8.4px;
cursor: pointer;
animate: 0.2s;
background: transparent;
border-color: transparent;
border-width: 16px 0;
color: transparent;
}
input[type=range]::-ms-fill-lower {
background: #2a6495;
border: 0.2px solid #010101;
border-radius: 2.6px;
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
}
input[type=range]::-ms-fill-upper {
background: #3071a9;
border: 0.2px solid #010101;
border-radius: 2.6px;
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
}
input[type=range]::-ms-thumb {
box-shadow: 1px 1px 1px #000000, 0px 0px 1px #0d0d0d;
border: 1px solid #000000;
height: 36px;
width: 16px;
border-radius: 3px;
background: #ffffff;
cursor: pointer;
}
input[type=range]:focus::-ms-fill-lower {
background: #3071a9;
}
input[type=range]:focus::-ms-fill-upper {
background: #367ebd;
}
<input type="range" min="0" max="100" step="5" value="50"/>
然后修改 CSS 以满足您的需求。
关于javascript - 价格范围 slider 在 mozilla 浏览器中不起作用,但在 chrome 和 opera 浏览器中起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56816171/
我在显示带有顶部/底部边框和边框半径的 block 时遇到问题。不知道为什么边框内会出现内半径。请查看下面的屏幕截图和代码。 http://img703.imageshack.us/img703/30
前一段时间我为自己制作了一个小页面,我偶然发现了一个错误,此后一直无法回答。 打开时http://darngoodpictures.com/#showme您会在左侧和右侧看到导航箭头。这些完全是 CS
我们目前正在通过 https://addons.opera.com/developer/ 上传我们扩展的每个新版本 因为我们需要为 Chrome 和 Firefox 执行类似的任务,所以整个过程变得乏
我开发了一个 Opera 扩展。它工作正常。但是我需要在 Windows 注册表或 Windows 文件系统中安装我的扩展。我该怎么做? 最佳答案 NOTE: THIS QUESTION IS OPE
大多数专业网站都提到 Opera 用户代理都包含单词 《歌剧》 . This kinda old post一位 Opera 开发人员提到了字符串 'OPR' 反而。 重点是:我的网站定期收到来自“OP
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
我在Dragonfly features page上看到除了稳定版之外,Dragonfly 还有实验版和前沿版。 当我在 Opera 中打开 Dragonfly 时,看起来正在使用稳定版本。如何让 O
Opera Unite (可以充当服务器的 Web 浏览器)刚刚发布,他们声称您可以构建 Web 服务,以便其他人可以访问您的浏览器。我有兴趣为该平台制作程序。 有人可以指点我一个关于如何为 Oper
我正在上传我的第一个 Opera 扩展。这很简单。它是一个启动弹出窗口的工具栏按钮。它在 Opera 开发者模式下运行良好。 Opera 不允许我成功上传它。它一直说缺少persona.ini 文件。
我正在使用 operatv 模拟器进行调试。我想知道是否存在远程调试,即我的应用程序在 Sony 上运行并在我的系统控制台上登录 最佳答案 如上所述: Download Opera and start
有什么方法可以使用 Opera 的用户 JavaScript 函数在特定的、开发人员定义的位置下载和存储文件吗? 谢谢。 最佳答案 事实上,只有小部件和 Opera 10 及更高版本才能实现纯 Jav
我用过this link并如前所述在本地安装了 Opera Dragonfly。但现在我无法加载 JavaScript 进行调试。附上错误截图。关于解决这个问题的任何想法? 我正在使用 Opera 1
是否有适用于 Opera 的 React 开发插件? Opera (DragonFly) 和 Chrome 开发工具看起来几乎相同。似乎没有支持 React 开发的 Opera 插件。考虑到它们几乎相
我正在尝试让 WebGL 与 Opera 12.0 (Mac OS X Lion) 一起运行。 Opera Website声明支持 WebGL,但如果我通过 WebGL check 检查它网站,Ope
是 WebKit 吗?急速? V8 引擎是专用于 Chrome 的吗? 最佳答案 WebKit 和 Presto 不是 Javascript 引擎,而是渲染引擎。 Opera 之前使用名为“Carak
我想知道 chrome.storage.sync 在 Opera 中是如何同步的。 文档谈到 Opera Sync,是 Opera Link 吗?是否有任何网页可以指导用户如何启用 chrome.st
我正在制作一个跨浏览器扩展,它覆盖了标准的“新标签”页面。 有一个manifest.json key ,称为 chrome_url_overrides : "chrome_url_overrides"
我正在为移动设备制作一个小部件,我想为我的小部件保存一些 xml 文件和图像文件,但是当我在 opera widget Mobile emulator for windows 中测试这段代码时,我没有
有人熟悉 CSS3 中的框阴影这个错误吗? 一开始它呈现正常。但是当上下滚动页面时(所以阴影进出可见区域)水平线的阴影会出错,需要重新加载才能正确渲染。我只在 Opera 中遇到过这种情况,在 IE(
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况相关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visi
我是一名优秀的程序员,十分优秀!