首先,“回到顶部”、“用户反馈”这两个按钮是通过定位放在左下角上。

(1)“回到顶部”的按钮只有当滚动条有出现下滑时才出现

(2)“用户反馈”按钮,用户刚打开时会抖动一下,引起用户的注意,然后才定住。

我的实现做法

首先,这两个按钮我都使用定位的方式定位在右下角适合的位置上。然后,

一、"回到顶部"

1、因为如果我们没有滚动鼠标,“按钮”没有出现,所以,我首先是把按钮隐藏起来的display:none,然后再通过js计算滚动后的高度

滚动后高度计算:scrollt = document.,documentElement.scrollTop+document.body.scrollTop

可视区高度:winH=$(window).height()

2、然后这两个高度做比较,如果是大于,说明已经滚动了,“回到顶部”的按钮可以显示出来display:block

3、注意:

(1)主要窗口滚动,就触发代码$(window).scroll(fucntion(){})

(2)兼容IE和chrome浏览器

document.documentElement.scrollTop+document.body.scrollTop

                        chrome(这个body获取的IE/FF得到的值为0)

代码:

//首页回到顶部和反馈入口

$(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);
});
});

                         

 二、“用户反馈”抖动

1、这个抖动的动画效果是使用css3动画做的、

代码如下:

/* 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:;
}
5% {
-webkit-transform:translateY(-100%);
opacity:;
}
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:;
}
} /* Mozilla Firefox 15 below */
@-moz-keyframes bounce {
0% {
-moz-transform:translateY(-100%);
opacity:;
}
5% {
-moz-transform:translateY(-100%);
opacity:;
}
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:;
}
} /* Opera 12.0 */
@-o-keyframes bounce {
0% {
-o-transform:translateY(-100%);
opacity:;
}
5% {
-o-transform:translateY(-100%);
opacity:;
}
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:;
}
} /* W3, Opera 12+, Firefox 16+ */
@keyframes bounce {
0% {
transform:translateY(-100%);
opacity:;
}
5% {
transform:translateY(-100%);
opacity:;
}
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:;
}
}

2、注意:

IE9+才支持

详细见表

查看效果:http://www.ingdan.com/

CSS3 keyframes动画实现弹跳效果的更多相关文章

  1. CSS3 @keyframes 动画

    CSS3的@keyframes,它可以取代许多网页动画图像,Flash动画,和JAVAScripts. CSS3的动画属性 下面的表格列出了 @keyframes 规则和所有动画属性: 浏览器支持 表 ...

  2. CSS3展现精彩的动画效果 css3的动画属性

    热火朝天的css3无疑吸引了很多前端开发者的眼球,然而在css3中的动画属性则是新功能中的主打招牌,说到css3的动画属性不得不让人想起这三个属性:Transform﹑Transition﹑Anima ...

  3. css3关键帧动画实现轮播效果

    实现效果:打开手机京东,可以看到首页的头部,以这个头部为基础,仿写一个类似的样式. 思路:仔细观察可以发现,手机京东的头部是以一个搜索栏和轮播特效组成的,而这个搜索栏是以轮播特效做为背景的,现在运用c ...

  4. CSS3圆圈动画放大缩小循环动画效果

    代码如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" c ...

  5. CSS3 @keyframes 规则以及animation介绍和各种动画样式说明

    一个好网站:http://www.jqhtml.com/ 如需在 CSS3 中创建动画,您需要学习 @keyframes 规则. @keyframes 规则用于创建动画.在 @keyframes 中规 ...

  6. 测试css3的动画效果在display:none的时候不耗费性能

    也许你也有这个疑惑,动画一直在播放,那它不显示出来的时候也一直在播放的话,那是否一直占用资源呢? <!doctype html> <html> <head> < ...

  7. css3 transform动画效果与公司框架简易动画的差异

    先看一下该网站的效果 http://2014guangzhouchezhan.dongfeng-citroen.com.cn/mobile/ 该站里面的动画效果由简易动画与css3动画2种方式混合达到 ...

  8. CSS3之动画模块实现云朵漂浮效果

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. js如何衔接css3的多个@keyframes动画?

    css3特效动画,我们在编写页面中经常遇到,而且是在同一个div模块上有多个衔接的不同动画,css中,我们经常使用animation-delay (规定在动画开始之前的延迟)进行处理. 那么,下面分享 ...

随机推荐

  1. 图文详解如何搭建Windows的Android C++开发环境

    原地址:http://www.apkbus.com/android-18595-1-1.html //================================================= ...

  2. ASP.NET生命周期详解

    最近一直在学习ASP.NET MVC的生命周期,发现ASP.NET MVC是建立在ASP.NET Framework基础之上的,所以原来对于ASP.NET WebForm中的很多处理流程,如管道事件等 ...

  3. Java中对List集合排序的两种方法

    第一种方法,就是list中对象实现Comparable接口,代码如下: public class Person implements Comparable<Person> { privat ...

  4. 各种HTTP错误消息含义

    错误代码 错误消息 400 无法解析此请求. 401.1 未经授权:访问由于凭据无效被拒绝. 401.2 未经授权: 访问由于服务器配置倾向使用替代身份验证方法而被拒绝. 401.3 未经授权:访问由 ...

  5. POJ1699Best Sequence(DFS)

    链接 这题其实是由bug的 一个串包含其它两个串的数据没有 所以就这么水了它吧 只处理两个串的关系就行了 回来补点..看了huge的博客 发现其实不是有Bug  题意没读清楚 必须首尾相连 像AGCT ...

  6. BZOJ_3527_[ZJOI2014]_力_(FFT+卷积)

    描述 题面: http://wenku.baidu.com/link?url=D2ORnA9xjgSxa2GlYLB7gGiYgBcXsy-Aw0kVYTjTE-iYhH1s7h8xXGmnaMwl3 ...

  7. An error occurred while filtering resources

    一个比较恶心的问题.在使用过程中项目中有个错误 ,找不到原因.. An error occurred while filtering resources     Maven -> Update ...

  8. ☀【移动】UC极速模式

    UC浏览器的部分版本默认是“极速”模式,有何办法能控制UC自动改变其浏览模式? √http://www.zhihu.com/question/20582949 关于UC极速模式下访问网站错乱 √htt ...

  9. 【 D3.js 选择集与数据详解 — 4 】 enter和exit的处理方法以及处理模板

    绑定数据之后,选择集分为三部分:update.enter.exit.这三部分的处理办法是什么呢?本文将讲解其处理方法,以及一个常用的处理模板. 1. enter的处理方法 如果没有足够的元素,那么处理 ...

  10. 为SharePoint网站创建自定义导航菜单

    转:http://kaneboy.blog.51cto.com/1308893/397779 相信不少人都希望把SharePoint网站内置的那个顶部导航菜单,换成自己希望的样式.由于SharePoi ...