Swipe between layers

Use an HTML range input to slide between two different tile layers.

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Swipe between layers</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<script src='https://api.mapbox.com/mapbox.js/v3.1.1/mapbox.js'></script>
<link href='https://api.mapbox.com/mapbox.js/v3.1.1/mapbox.css' rel='stylesheet' />
<style>
  body { margin:0; padding:0; }
  #map { position:absolute; top:0; bottom:0; width:100%; }
</style>
</head>
<body>
<style>
.range {
  position:absolute;
  width:100%;
  }
.leaflet-top .leaflet-control-zoom {
  top:20px;
  }
</style>

<div id='map'></div>
<input id='range' class='range' type='range' min='0' max='1.0' step='any' />

<script>
L.mapbox.accessToken = '<your access token here>';
var map = L.mapbox.map('map').setView([49.434,-123.272], 7);

L.mapbox.tileLayer('mapbox.outdoors').addTo(map);
var overlay = L.mapbox.tileLayer('mapbox.comic').addTo(map);

var range = document.getElementById('range');

function clip() {
  var nw = map.containerPointToLayerPoint([0, 0]),
      se = map.containerPointToLayerPoint(map.getSize()),
      clipX = nw.x + (se.x - nw.x) * range.value;

  overlay.getContainer().style.clip = 'rect(' + [nw.y, clipX, se.y, nw.x].join('px,') + 'px)';
}

range['oninput' in range ? 'oninput' : 'onchange'] = clip;
map.on('move', clip);
clip();
</script>
to create your own custom map and use it in this example.
Use this example by copying its source into your own HTML page and replacing the Map ID with one of your own from your projects. Having trouble with JavaScript? Try out Codecademy or contact our support team.
Copy example