fixed ripples.js on old versions of browsers which not support element.matches

This commit is contained in:
Federico Zivolo 2014-09-05 10:08:47 +02:00
parent c19314f14e
commit 19d0c1bede

View File

@ -3,6 +3,12 @@ var ripples = {
init : function(withRipple) { init : function(withRipple) {
"use strict"; "use strict";
// Cross browser matches function
function matchesSelector(dom_element, selector) {
var matches = dom_element.matches || dom_element.matchesSelector || dom_element.webkitMatchesSelector || dom_element.mozMatchesSelector || dom_element.msMatchesSelector || dom_element.oMatchesSelector;
return matches.call(dom_element, selector);
}
// animations time // animations time
var rippleOutTime = 100, var rippleOutTime = 100,
rippleStartTime = 500; rippleStartTime = 500;
@ -12,7 +18,7 @@ var ripples = {
document.addEventListener(event, function(e) { document.addEventListener(event, function(e) {
var target = (typeof e.detail !== "number") ? e.detail : e.target; var target = (typeof e.detail !== "number") ? e.detail : e.target;
if (target.matches(selector)) { if (matchesSelector(target, selector)) {
callback(e, target); callback(e, target);
} }
}); });
@ -21,7 +27,7 @@ var ripples = {
var rippleStart = function(e, target) { var rippleStart = function(e, target) {
// Init variables // Init variables
var $rippleWrapper = (target.matches(".ripple-wrapper")) ? target : target.parentNode, var $rippleWrapper = (matchesSelector(target, ".ripple-wrapper")) ? target : target.parentNode,
$el = $rippleWrapper.parentNode, $el = $rippleWrapper.parentNode,
$ripple = document.createElement("div"), $ripple = document.createElement("div"),
elPos = $el.getBoundingClientRect(), elPos = $el.getBoundingClientRect(),