На основе решения @ Spider моя версия без JQuery такова:
// Get the container element's bounding box
var sides = document.getElementById("container").getBoundingClientRect();
// Apply the mouse event listener
document.getElementById("canvas").onmousemove = (e) => {
// Here 'self' is simply the current window's context
var x = (e.clientX - sides.left) + self.pageXOffset;
var y = (e.clientY - sides.top) + self.pageYOffset;
}
Это работает как с прокруткой, так и с масштабированием (в этом случае иногда он возвращает float).
Принятие строк ASCII:
string1 = 'Hello'
string2 = 'hello'
if string1.lower() == string2.lower():
print("The strings are the same (case insensitive)")
else:
print("The strings are NOT the same (case insensitive)")
Обычный подход является к верхнему регистру строками или нижним регистром их для поисков и сравнений. Например:
>>> "hello".upper() == "HELLO".upper()
True
>>>
Как насчет того, чтобы преобразовать в нижний регистр сначала? можно использовать string.lower()
.
def insenStringCompare(s1, s2):
""" Method that takes two strings and returns True or False, based
on if they are equal, regardless of case."""
try:
return s1.lower() == s2.lower()
except AttributeError:
print "Please only pass strings into this method."
print "You passed a %s and %s" % (s1.__class__, s2.__class__)