css3圆环百分比,菜单栏定位导航
前段时间,社区个人中心改版,看了下设计图,当时隐约感觉到有两个地方(圆环百分比,菜单栏定位导航)比较麻烦。设计图大致如下:


首先看圆环百分比,网上的做法大致分两种,一种是用了CSS3中的transform:rotate和clip两个属性,另一种用canvas的 http://www.cnblogs.com/eyeear/p/5278092.html (自己没有实践)
html代码为:
<div class="spinner spinner_{$key}" data-praise="{$value['praise_total']}">
<div class="spinner_left">
<div class="left">
</div>
</div>
<div class="spinner_right">
<div class="right">
</div>
</div>
<div class="spinner_logo logo_pic"></div>
</div>
css代码为:
.spinner {
width: 60px;
height: 60px;
position: relative;
border-radius: 30px;
box-shadow: inset 0 0 0 10px #edeff1;
float: left;
margin-right: 10px;
.spinner_left, .spinner_right {
width: 60px;
height: 60px;
position: absolute;
top:;
left:;
}
.left, .right {
width: 60px;
height: 60px;
box-shadow: inset 0 0 0 10px #fd6649;
border-radius: 50%;
position: absolute;
top:;
left:;
}
.left {
transform: rotate(0deg);
}
.spinner_left, .left {
clip: rect(0, 30px, auto, 0);
}
.spinner_right, .right {
clip: rect(0, auto, auto, 30px);
}
}
js代码为:
$('.spinner').each(function(index, el) {
var pra = $(this).data('praise');
if(pra < 10 ) {
pra = 10;
}
if(pra > 300) {
pra = 300;
}
var num = (pra/300)*360;
if(num <= 180) {
$(this).find('.right').css('transform', "rotate(" + (num + 180) + "deg)");
$(this).find('.left').css('transform', "rotate(" + (-180) + "deg)");
} else {
$(this).find('.left').css('transform', "rotate(" + num + "deg)");
}
});
再来看菜单栏定位导航:
这里主要看js处理的方法,之前自己实现得差不多,好像是那么回事,但是效果却不太友好,有点卡卡的感觉,看了下http://www.imooc.com/learn/56 这个教程,改进了下。感觉自己之前想法是对的,不过好像绕了一圈,导致写的有点复杂:
最初版本:
$(window).scroll(function () {
for(var i = 0; i < heights_count; i++) {
/*
if( i == 4) { //最后一个
if((heights[i] - 20 < toph)) {
$menulis.removeClass('active');
$($menulis[i]).addClass('active');
}
} else if(toph == 0) { //第一个
$menulis.removeClass('active');
$($menulis[0]).addClass('active');
} else {
if((heights[i] - 20 < toph) && (toph < heights[i] + 20)){
$menulis.removeClass('active');
$($menulis[i]).addClass('active');
}
}
*/
}
});
最终版本:
$(window).scroll(function () {
for(var i = 0; i < heights_count; i++) {
if( toph > heights[i] - 80 ) {
last = i;
} else {
break;
}
}
$menulis.removeClass('active');
$($menulis[last]).addClass('active');
});
css3圆环百分比,菜单栏定位导航的更多相关文章
- css3的calc() css3的百分比减宽,减高,加,乘,除,适合用于后台的排版定位
css3的calc() css3的百分比减宽,减高,加,乘,除,适合用于后台的排版定位 浏览器支持IE9+.FF4.0+.Chrome19+.Safari6+ calc()语法非常简单,就像我们小时候 ...
- css3圆形百分比进度条的实现原理
原文地址:css3圆形百分比进度条的实现原理 今天早上起来在查看jquery插件机制的时候,一不小心点进了css3圆形百分比进度条的相关文章,于是一发不可收拾,开始折腾了... 关于圆形圈的实现,想必 ...
- 学习使用 CSS3 制作网站面包屑导航效果
作为最重要的导航展示形式之一,面包屑导航能够让用户更清楚的知道他们所在页面的层次结构,让他们可以方便的导航到上一层页面.在本教程中,您将学习如何使用 CSS3 技术创建自己的面包屑导航效果. 效果演示 ...
- 纯CSS3编写的面包屑导航收集
整理了10个纯CSS3制作的面包屑导航,这些都是通过CSS3来编写,十分方便,而且实用.有些文章附有教程,大家可以研究学习一下. 漂亮面包屑导航 查看网站 扁平化面包屑导航 查看网站 圆形风格面包屑导 ...
- JQuery和原生JavaScript实现网页定位导航特效
慕课网的一个小课程,练习了一遍,不足之处,欢迎指正(照片在本地,大家可以着重看代码哈): <!DOCTYPE html> <html lang="en"> ...
- 一款基于jquery和css3的响应式二级导航菜单
今天给大家分享一款基于jquery和css3的响应式二级导航菜单,这款导航是传统的基于顶部,鼠标经过的时候显示二级导航,还采用了当前流行的响应式设计.效果图如下: 在线预览 源码下载 实现的代码. ...
- 一款简洁的纯css3代码实现的动画导航
之前为大家介绍了好多导航菜单,今天给大家分享一款简洁的纯css3代码实现的动画导航.鼠标经过的时候以背景色以菱形渐变为长方形.效果图如下: 在线预览 源码下载 实现的代码. html代码: < ...
- 一款纯css3实现的响应式导航
之前为大家介绍了好几款响应式导航.今天再给大家带来一款纯css3实现的响应式导航.这款导航还有个响应式的搜索框.废话少说,直接上图: 在线预览 源码下载 实现的代码. html代码: <di ...
- 纯css3实现的竖形二级导航
之前为大家分享了好多导航菜单.今天给大家带来一款纯css3实现的竖形二级导航.这款导航菜单可以是无限级.一起看下效果图: 在线预览 源码下载 实现的代码. html代码: <div styl ...
随机推荐
- Restful资源文章
理解RESTful架构 RESTful API设计指南 RESTful架构详解 NodeJs的RESTful API
- 隐私泄露杀手锏 —— Flash 权限反射
[简版:http://weibo.com/p/1001603881940380956046] 前言 一直以为该风险早已被重视,但最近无意中发现,仍有不少网站存在该缺陷,其中不乏一些常用的邮箱.社交网站 ...
- Entity Framework Core 实现MySQL 的TimeStamp/RowVersion 并发控制
将通用的序列号生成器库 从SQL Server迁移到Mysql 遇到的一个问题,就是TimeStamp/RowVersion并发控制类型在非Microsoft SQL Server数据库中的实现.SQ ...
- TODO:GitHub创建组织的步骤
TODO:GitHub创建组织的步骤 使用GitHub进行团队合作,写这个步骤主要作用是为了OneTODO作为一个团队组织进行代码的分享,让更多人来参与. 使用帐号.密码登录GitHub 2.右上角加 ...
- JS继承之原型继承
许多OO语言都支持两种继承方式:接口继承和实现继承.接口继承只继承方法签名,而实现继承则继承实际的方法.如前所述,由于函数没有签名,在ECMAScript中无法实现接口继承.ECMAScript只支 ...
- CSS 3 学习——transform 3D转换渲染
以下内容根据官方规范翻译,没有翻译关于SVG变换的内容和关于矩阵计算的内容. 一般情况下,元素在一个无景深无立体感的平面(flat plane)上渲染,这个平面就是其包含块所处的平面.同时,页面上的其 ...
- wordpress优化之结合prism.js为编辑器自定义按钮转化代码
原文链接 http://ymblog.net/2016/07/24/wordpress-prism/ 继昨天花了一天一夜的时间匆匆写了主题Jiameil3.0之后,心中一直在想着优化加速,体验更好,插 ...
- .NET同步与异步之相关背景知识(六)
在之前的五篇随笔中,已经介绍了.NET 类库中实现并行的常见方式及其基本用法,当然.这些基本用法远远不能覆盖所有,也只能作为一个引子出现在这里.以下是前五篇随笔的目录: .NET 同步与异步之封装成T ...
- Android的Kotlin秘方(II):RecyclerView 和 DiffUtil
作者:Antonio Leiva 时间:Sep 12, 2016 原文链接:http://antonioleiva.com/recyclerview-diffutil-kotlin/ 如你所知,在[支 ...
- SQL 数据优化索引建suo避免全表扫描
首先什么是全表扫描和索引扫描?全表扫描所有数据过一遍才能显示数据结果,索引扫描就是索引,只需要扫描一部分数据就可以得到结果.如果数据没建立索引. 无索引的情况下搜索数据的速度和占用内存就会比用索引的检 ...