传单易按钮,状态和颜色
Leaflet easybutton, states and color
我有一个奇怪的问题。我仍然是一个初学者,改变你不完全理解的代码特别困难。
我在地图上有 2 个简单按钮。两者都是单独制作的(来自同一指令的不同实例)。
现在它们应该有不同的颜色。我可以在制作按钮的地方使用颜色,所以我认为这应该很容易。
现在(我从其他人那里得到的代码),每个按钮实际上是 2 个按钮交替显示,这有效,只是它们有时似乎会交换位置。
var btn1 = L.easyButton('fa-dot-circle-o', function() {
self.trackingModeActive = true;
map.removeControl(btn1);
map.addControl(btn2);
}, 'Mode 1', map);
var btn2 = L.easyButton('fa-expand', function() {
self.trackingModeActive = false;
map.removeControl(btn2);
map.addControl(btn1);
}, 'Mode2', '');
我首先尝试的是:
btn1.btn.style.backgoundColor = 'red';
和它的变体,但它不起作用(找不到样式对象)。我读到你可以像图片一样放置 html 代码而不是符号变量(这里的"fa-dot-circle-o"),并认为我可以放置这样的样式属性,但当我这样做时,它只会将该代码写入类属性,例如
class="<img src="...">"
所以这也对我不起作用。
然后我读到状态是可能的,认为我也可以正确地做到这一点,并从easyButton网站上尝试了这个:
var stateChangingButton = L.easyButton({
states: [{
stateName: 'zoom-to-forest', // name the state
icon: 'fa-tree', // and define its properties
title: 'zoom to a forest', // like its title
onClick: function (btn, map) { // and its callback
map.setView([46.25, -121.8], 10);
btn.state('zoom-to-school'); // change state on click!
}
}, {
stateName: 'zoom-to-school',
icon: 'fa-university',
title: 'zoom to a school',
onClick: function (btn, map) {
map.setView([42.3748204, -71.1161913], 16);
btn.state('zoom-to-forest');
}
}]
});
stateChangingButton.addTo(map);
我得到的是:参考错误:地图未定义 在Object.L.easyButton(easy-button.js:55)。
我把这个状态更改按钮代码放在其他按钮代码的正下方,所以我不明白为什么不会为此定义映射变量,而是为其他按钮定义。
我希望有人能给我一个提示,说明哪里/为什么会出错。我宁愿解决状态更改按钮问题并从那里开始,但我真的很好奇其他尝试出了什么问题。
编辑:以防万一有人有类似的问题,我找到了原因,它显然只是传单的超级旧版本,它只允许语法L.easyButton("图标",函数,"文本",地图),没有别的。不幸的是,我不允许更新版本。
我使用这种类型的代码来添加一个EasyButton并在其上添加一些样式:
backButton = L.easyButton('<span class="backButton">↩</span>', function (btn, map) {
//ONCLICK EVENT HERE
},
{ position: 'bottomright' });
//Add to the map
map.addControl(backButton);
我为我的按钮定义了一个类,所以我可以添加一些 css 样式(顺便说一句,您可以更改它):CSS 示例:
<style>
.backButton{
font-size: 3.5em;
}
</style>
这只是一个例子,但我希望它能帮助你。
您正在使用"btn"参数。它不存在。btn1.btn.style.backgoundColor = 'red';尝试使用类似按钮
btn1.button.style.backgoundColor = 'red';
您可以看到更多属性,如果您创建控制台.log(btn1);此致敬意
杭德罗
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 事件和状态
- 高亮显示时编辑文本大小和颜色
- 获取选择框的状态
- 用与线条相同的颜色填充多折线图上的点
- 相位器状态未捕获参考错误
- 更改使用Chart.js创建的图表中的轴线颜色
- 清除值时,将输入背景颜色返回到原始状态
- Highcharts 图形默认系列填充颜色覆盖状态填充颜色(包括 jsfiddle)
- 在“颜色盒”处于打开状态时,动态地从“颜色框”中删除图像
- 如何根据链接内部状态更改列表项的颜色
- ios状态栏phonegap/cordova的黑色文本颜色
- 鼠标停留在一个状态上,用d3地图改变其他状态的颜色
- Javascript活动状态用不同的颜色表示
- 更改jQuery UI下拉菜单's的背景颜色取决于复选框状态
- 一个基于抽动流状态更新按钮颜色的函数
- 如何颜色按钮和保持状态
- 更改状态下的按钮颜色更改angularjs
- 保存更改颜色的状态
- 传单易按钮,状态和颜色