Compare commits
2 Commits
carto
...
ie-opacity
Author | SHA1 | Date | |
---|---|---|---|
|
2ccdb9592c | ||
|
97ce8187fd |
@ -6,7 +6,6 @@
|
|||||||
|
|
||||||
var ie = !!window.ActiveXObject,
|
var ie = !!window.ActiveXObject,
|
||||||
ie6 = ie && !window.XMLHttpRequest,
|
ie6 = ie && !window.XMLHttpRequest,
|
||||||
ie7 = ie && !document.querySelector,
|
|
||||||
|
|
||||||
// terrible browser detection to work around Safari / iOS / Android browser bugs
|
// terrible browser detection to work around Safari / iOS / Android browser bugs
|
||||||
ua = navigator.userAgent.toLowerCase(),
|
ua = navigator.userAgent.toLowerCase(),
|
||||||
@ -14,6 +13,8 @@
|
|||||||
chrome = ua.indexOf('chrome') !== -1,
|
chrome = ua.indexOf('chrome') !== -1,
|
||||||
android = ua.indexOf('android') !== -1,
|
android = ua.indexOf('android') !== -1,
|
||||||
android23 = ua.search('android [23]') !== -1,
|
android23 = ua.search('android [23]') !== -1,
|
||||||
|
ie7 = ie && !document.querySelector && ua.search('msie 7') !== -1,
|
||||||
|
ie8 = ie && ua.search('msie 8') !== -1,
|
||||||
|
|
||||||
mobile = typeof orientation !== undefined + '',
|
mobile = typeof orientation !== undefined + '',
|
||||||
msTouch = window.navigator && window.navigator.msPointerEnabled &&
|
msTouch = window.navigator && window.navigator.msPointerEnabled &&
|
||||||
@ -63,6 +64,7 @@
|
|||||||
ie: ie,
|
ie: ie,
|
||||||
ie6: ie6,
|
ie6: ie6,
|
||||||
ie7: ie7,
|
ie7: ie7,
|
||||||
|
ie8: ie8,
|
||||||
webkit: webkit,
|
webkit: webkit,
|
||||||
|
|
||||||
android: android,
|
android: android,
|
||||||
|
@ -142,26 +142,12 @@ L.DomUtil = {
|
|||||||
},
|
},
|
||||||
|
|
||||||
setOpacity: function (el, value) {
|
setOpacity: function (el, value) {
|
||||||
|
|
||||||
if ('opacity' in el.style) {
|
if ('opacity' in el.style) {
|
||||||
el.style.opacity = value;
|
el.style.opacity = value;
|
||||||
|
|
||||||
} else if ('filter' in el.style) {
|
} else if ('filter' in el.style) {
|
||||||
|
var filterName = 'alpha';
|
||||||
var filter = false,
|
|
||||||
filterName = 'DXImageTransform.Microsoft.Alpha';
|
|
||||||
|
|
||||||
// filters collection throws an error if we try to retrieve a filter that doesn't exist
|
|
||||||
try { filter = el.filters.item(filterName); } catch (e) {}
|
|
||||||
|
|
||||||
value = Math.round(value * 100);
|
value = Math.round(value * 100);
|
||||||
|
el.style.filter = filterName + '(opacity=' + value + ')';
|
||||||
if (filter) {
|
|
||||||
filter.Enabled = (value !== 100);
|
|
||||||
filter.Opacity = value;
|
|
||||||
} else {
|
|
||||||
el.style.filter += ' progid:' + filterName + '(opacity=' + value + ')';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -186,12 +186,20 @@ L.TileLayer = L.Class.extend({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_updateOpacity: function () {
|
_updateOpacity: function () {
|
||||||
L.DomUtil.setOpacity(this._container, this.options.opacity);
|
|
||||||
|
|
||||||
// stupid webkit hack to force redrawing of tiles
|
|
||||||
var i,
|
var i,
|
||||||
tiles = this._tiles;
|
tiles = this._tiles;
|
||||||
|
|
||||||
|
if (!L.Browser.ie7 && !L.Browser.ie8) {
|
||||||
|
L.DomUtil.setOpacity(this._container, this.options.opacity);
|
||||||
|
} else {
|
||||||
|
for (i in tiles) {
|
||||||
|
if (tiles.hasOwnProperty(i)) {
|
||||||
|
L.DomUtil.setOpacity(tiles[i], this.options.opacity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// stupid webkit hack to force redrawing of tiles
|
||||||
if (L.Browser.webkit) {
|
if (L.Browser.webkit) {
|
||||||
for (i in tiles) {
|
for (i in tiles) {
|
||||||
if (tiles.hasOwnProperty(i)) {
|
if (tiles.hasOwnProperty(i)) {
|
||||||
@ -199,6 +207,8 @@ L.TileLayer = L.Class.extend({
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
_initContainer: function () {
|
_initContainer: function () {
|
||||||
@ -471,6 +481,11 @@ L.TileLayer = L.Class.extend({
|
|||||||
_createTile: function () {
|
_createTile: function () {
|
||||||
var tile = this._tileImg.cloneNode(false);
|
var tile = this._tileImg.cloneNode(false);
|
||||||
tile.onselectstart = tile.onmousemove = L.Util.falseFn;
|
tile.onselectstart = tile.onmousemove = L.Util.falseFn;
|
||||||
|
// in IE7 and IE8 should be set per tile
|
||||||
|
if ((L.Browser.ie7 || L.Browser.ie8) && this.options.opacity !== undefined) {
|
||||||
|
L.DomUtil.setOpacity(tile, this.options.opacity);
|
||||||
|
}
|
||||||
|
|
||||||
return tile;
|
return tile;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user