首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Leaflet.js -将不透明度设置为带有滑块的LayerGroup

Leaflet.js -将不透明度设置为带有滑块的LayerGroup
EN

Stack Overflow用户
提问于 2015-07-06 19:41:25
回答 2查看 6.5K关注 0票数 1

我正在展示一张传单底图。我使用HTML5滑块将不透明度设置为分层组,但它不起作用。

我在想我做错了什么。

提前感谢!

代码语言:javascript
复制
    <h3>TF.Landscape</h3>
    <br><input type="button" value=" + " onclick="BaseMapAsLayerGroup('http://{s}.tile.thunderforest.com/landscape/{z}/{x}/{y}.png')">
    <br><input id="slide" type="range" min="0" max="1" step="0.1" value="0" onchange="updateOpacity(this.value)">

    <hr>
    <div id="map" style="width: 800px; height: 600px"></div>

    <script src="http://cdn.leafletjs.com/leaflet-0.7/leaflet.js"> </script>
    <script>

        var map;
        var capa;

        function BaseMapAsLayerGroup(url){
            if(!map) { 
                map = L.map('map').setView([-41.2858, 174.78682], 14); 
            }

            capa = new L.LayerGroup();
            L.tileLayer(url, {
            attribution: 'Map data &copy; <a href="http://openstreetmap.org">OpenStreetMap</a>',
            maxZoom: 18
            }).addTo(capa);

                map.addLayer(capa);
        }

        function updateOpacity(value) {
            capa.opacity(value);
        }

    </script>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-07-06 21:48:17

我认为您希望设置图层(capa)的不透明度,而不是地图。该变量需要不同的作用域才能正常工作。这样做的一个快速方法是在脚本顶部的capa下面声明var map

代码语言:javascript
复制
function updateOpacity(value) {
    capa.opacity(value);
}

编辑:

我想这把小提琴说明了你想做什么。在最初的文章中,代码中有一些遗漏/错误的地方,包括省略到传单库所需的CSS链接。

单层由它自己的滑块控制

编辑:

两层,每个层都由自己的滑块控制。

票数 1
EN

Stack Overflow用户

发布于 2015-07-07 19:16:22

另一种改变透明度的方法是使用setstyle函数。因此,在您的情况下,尝试以下几个

代码语言:javascript
复制
function updateOpacity(value) {
    capa.setStyle({opacity:value});
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31254277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档