First of all, the two buttons "Back to Top" and "User Feedback" are positioned in the lower left corner.
(1) The "Back to Top" button only appears when the scroll bar slides down
(2) The "User Feedback" button will shake when the user first opens it Once, grab the user's attention, and then stop.
My implementation method
First of all, I use positioning to position these two buttons at a suitable location in the lower right corner. Then,
1. "Back to top"
1. Because if we don't scroll the mouse, the "button" does not appear, so I first hide the button Display: none, and then calculate the height after scrolling through js
Calculation of height after scrolling: scrollt = document., documentElement.scrollTop document.body.scrollTop
Visual area height: winH=$(window).height()
2. Then compare the two heights. If it is greater than that, it means it has been scrolled, and the "Back to Top" button can be displayed display:block
3. Note:
(1) When the main window scrolls, the code $(window).scroll(fucntion(){})
(2) Compatible with IE and chrome Browser
document.documentElement.scrollTop document.body.scrollTop
Generation you in you in in in on in in chrome (the value obtained by IE/FF for this body can be 0)
Code:
//首页回到顶部和反馈入口$(function(){ $(window).scroll(function(){ //只要窗口滚动,就触发下面代码 var scrollt = document.documentElement.scrollTop + document.body.scrollTop; //获取滚动后的高度 document.body.scrollTop用来兼容chrome//console.log('滚动条的高度scrollTop1-'+scrollTop1+'-scrollTop2-'+scrollTop2); var winH = $(window).height(); // 获取可视区高度 console.log('滚动后高度为'+'---'+scrollt); if( scrollt+winH >winH ){ //判断滚动后高度超过0px,就显示 $("#gotop").fadeIn(400); //淡出 }else{ $("#gotop").stop().fadeOut(400); //如果返回或者没有超过,就淡入.必须加上stop()停止之前动画,否则会出现闪动 } }); $("#gotop").click(function(){ //当点击标签的时候,使用animate在200毫秒的时间内,滚到顶部 $("html,body").animate({scrollTop:"0px"},200); });});
🎜 > 2. "User feedback" jitter
1. This jitter animation effect is made using css3 animation.
The code is as follows:
2. Note:
/* feedback的弹跳效果 */.css3-notification { -webkit-animation: bounce 1800ms ease-out; -moz-animation: bounce 1800ms ease-out; -o-animation: bounce 1800ms ease-out; animation: bounce 1800ms ease-out;}/* Webkit, Chrome and Safari */@-webkit-keyframes bounce { 0% { -webkit-transform:translateY(-100%); opacity: 0; } 5% { -webkit-transform:translateY(-100%); opacity: 0; } 15% { -webkit-transform:translateY(0); padding-bottom: 5px; } 30% { -webkit-transform:translateY(-50%); } 40% { -webkit-transform:translateY(0%); padding-bottom: 6px; } 50% { -webkit-transform:translateY(-30%); } 70% { -webkit-transform:translateY(0%); padding-bottom: 7px; } 80% { -webkit-transform:translateY(-15%); } 90% { -webkit-transform:translateY(0%); padding-bottom: 8px; } 95% { -webkit-transform:translateY(-10%); } 97% { -webkit-transform:translateY(0%); padding-bottom: 9px; } 99% { -webkit-transform:translateY(-5%); } 100% { -webkit-transform:translateY(0); padding-bottom: 9px; opacity: 1; }}/* Mozilla Firefox 15 below */@-moz-keyframes bounce { 0% { -moz-transform:translateY(-100%); opacity: 0; } 5% { -moz-transform:translateY(-100%); opacity: 0; } 15% { -moz-transform:translateY(0); padding-bottom: 5px; } 30% { -moz-transform:translateY(-50%); } 40% { -moz-transform:translateY(0%); padding-bottom: 6px; } 50% { -moz-transform:translateY(-30%); } 70% { -moz-transform:translateY(0%); padding-bottom: 7px; } 80% { -moz-transform:translateY(-15%); } 90% { -moz-transform:translateY(0%); padding-bottom: 8px; } 95% { -moz-transform:translateY(-10%); } 97% { -moz-transform:translateY(0%); padding-bottom: 9px; } 99% { -moz-transform:translateY(-5%); } 100% { -moz-transform:translateY(0); padding-bottom: 9px; opacity: 1; }}/* Opera 12.0 */@-o-keyframes bounce { 0% { -o-transform:translateY(-100%); opacity: 0; } 5% { -o-transform:translateY(-100%); opacity: 0; } 15% { -o-transform:translateY(0); padding-bottom: 5px; } 30% { -o-transform:translateY(-50%); } 40% { -o-transform:translateY(0%); padding-bottom: 6px; } 50% { -o-transform:translateY(-30%); } 70% { -o-transform:translateY(0%); padding-bottom: 7px; } 80% { -o-transform:translateY(-15%); } 90% { -o-transform:translateY(0%); padding-bottom: 8px; } 95% { -o-transform:translateY(-10%); } 97% { -o-transform:translateY(0%); padding-bottom: 9px; } 99% { -o-transform:translateY(-5%); } 100% { -o-transform:translateY(0); padding-bottom: 9px; opacity: 1; }}/* W3, Opera 12+, Firefox 16+ */@keyframes bounce { 0% { transform:translateY(-100%); opacity: 0; } 5% { transform:translateY(-100%); opacity: 0; } 15% { transform:translateY(0); padding-bottom: 5px; } 30% { transform:translateY(-50%); } 40% { transform:translateY(0%); padding-bottom: 6px; } 50% { transform:translateY(-30%); } 70% { transform:translateY(0%); padding-bottom: 7px; } 80% { transform:translateY(-15%); } 90% { transform:translateY(0%); padding-bottom: 8px; } 95% { transform:translateY(-7%); } 97% { transform:translateY(0%); padding-bottom: 9px; } 99% { transform:translateY(-3%); } 100% { transform:translateY(0); padding-bottom: 9px; opacity: 1; }}
See the table for details
View the effect: http: //www.ingdan.com/