refine javascript/css, fix interaction bug