After a click event I need to wait for an elements attribute to change before proceeding further (click event causes certain elements to move out of focus and certain others get
I feel that using the WebDriverWait is pretty useful. One change you can make in your code is use -
webelement.isDisplayed();
instead of getting the style attribute.