首页 > 解决方案 > 为什么我的范围滑块在移动设备上不起作用?

问题描述

我的网页有问题。我正在尝试为地图上的图层做侧导航。它必须能够移动不同的图层(有点像 Photoshop),并使用滑块设置图层的不透明度。它在台式机上运行良好,但在触摸屏上却不行。如果我注释掉使列表可排序的行,则滑块可以在移动设备上使用,但是我需要它能够同时执行这两种操作。

//makes html list of the current layers
function makeList()
{
    layersToArray();
    // Make a container element for the list
    var listContainer = document.createElement("div");
    // Add it to the page
    document.getElementById("layerStackSideNav").appendChild(listContainer);
    // Make the list
    var listElement = document.createElement("ul");
    listElement.setAttribute("id","sortable");
    // Add it to the page
    listContainer.appendChild(listElement);
    var numberOfListItems = layerNames.length;

    // Set up a loop that goes through the items in listItems one at a time
    for (var i = numberOfListItems-1; i > -1; i--)
    {
        // create an item for each one
        var listItem = document.createElement("li");
        // Add the item text
        listItem.innerHTML = layerNames[i];
        // Add listItem to the listElement
        listElement.appendChild(listItem);
        //Make opacity slider
        var sliderContainer = document.createElement("div");
        sliderContainer.setAttribute("class","sliderContainer");
        listItem.appendChild(sliderContainer);
        var opacitySlider = document.createElement("input");
        opacitySlider.setAttribute("id", layerNames[i]);
        opacitySlider.setAttribute("class", "slider");
        opacitySlider.setAttribute("type", "range");
        opacitySlider.setAttribute("min", "0");
        opacitySlider.setAttribute("max", "1");
        opacitySlider.setAttribute("step", "0.1");
        opacitySlider.setAttribute("value", "1");
        opacitySlider.setAttribute("oninput",
           "findLayerByName(\""+layerNames[i]+"\").setOpacity(this.value)");
        sliderContainer.appendChild(opacitySlider);
    }
}

标签: javascripthtmlslider

解决方案


推荐阅读