本文介紹了傳單Js自定義控制按鈕添加(文字,懸停)的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我遵循了 這個 control-button-leaflet 教程,它對我有用.現在我想:
- 當我將鼠標懸停在按鈕上時顯示一些文本(例如使用縮放按鈕)
- 當我將鼠標懸停在按鈕上時更改按鈕的顏色
- 能夠在按鈕內寫入文本而不是圖像.
代碼如下:
var customControl = L.Control.extend({選項: {位置:左上角"},onAdd:函數(地圖){var container = L.DomUtil.create('div', 'leaflet-bar Leaflet-control Leaflet-control-custom');container.style.backgroundColor = '白色';container.style.backgroundImage = "url(http://t1.gstatic.com/images?q=tbn:ANd9GcR6FCUMW5bPn8C4PbKak2BJQQsmC-K9-mbYBeFZm1ZM2w2GRy40Ew)";container.style.backgroundSize = "30px 30px";container.style.width = '30px';container.style.height = '30px';container.onclick = 函數(){console.log('buttonClicked');}返回容器;}});變量映射;var readyState = 函數(e){map = new L.Map('map').setView([48.935, 18.14], 14);L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);map.addControl(new customControl());}window.addEventListener('DOMContentLoaded', readyState);
解決方案
看來你比 div 更需要 Button:
var container = L.DomUtil.create('input');容器.type="按鈕";
然后就可以輕松設置鼠標懸停文本了:
container.title="沒有貓";
還有一些文字而不是圖片:
container.value = "42";
您可以使用鼠標事件來設置按鈕樣式:
container.onmouseover = function(){container.style.backgroundColor = '粉色';}容器.onmouseout = 函數(){container.style.backgroundColor = '白色';}
(你當然可以用 css 完成最后一部分,可能更優雅)
完整示例:http://codepen.io/anon/pen/oXVMvyp>
I followed this control-button-leaflet tutorial and it worked for me. Now I want to:
- show some text when i hover over the button (like with the zoom buttons)
- Change the color of the button when i hover over it
- be able to write text inside the button instead of an image.
Here's the code:
var customControl = L.Control.extend({
options: {
position: 'topleft'
},
onAdd: function (map) {
var container = L.DomUtil.create('div', 'leaflet-bar leaflet-control leaflet-control-custom');
container.style.backgroundColor = 'white';
container.style.backgroundImage = "url(http://t1.gstatic.com/images?q=tbn:ANd9GcR6FCUMW5bPn8C4PbKak2BJQQsmC-K9-mbYBeFZm1ZM2w2GRy40Ew)";
container.style.backgroundSize = "30px 30px";
container.style.width = '30px';
container.style.height = '30px';
container.onclick = function(){
console.log('buttonClicked');
}
return container;
}
});
var map;
var readyState = function(e){
map = new L.Map('map').setView([48.935, 18.14], 14);
L.tileLayer('http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png').addTo(map);
map.addControl(new customControl());
}
window.addEventListener('DOMContentLoaded', readyState);
解決方案
It seems you more need a Button than a div:
var container = L.DomUtil.create('input');
container.type="button";
Then you can easily set a mouseover text:
container.title="No cat";
And some Text instead of an image:
container.value = "42";
And you can use the mouse events to style the button:
container.onmouseover = function(){ container.style.backgroundColor = 'pink'; } container.onmouseout = function(){ container.style.backgroundColor = 'white'; }
(you could of course do this last part with css, might be more elegant)
Full example: http://codepen.io/anon/pen/oXVMvy
這篇關于傳單Js自定義控制按鈕添加(文字,懸停)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!
【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!