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 ...
随机推荐
- NodeJs之log4js
log4js log4js是一个管理,记录日志的工具. 其实与morgan的作用类似. 安装 npm install -g log4js log4js的6个日志级别 分别是:trace(蓝色).deb ...
- ASP.NET MVC5+EF6+EasyUI 后台管理系统(70)-微信公众平台开发-成为开发者
系列目录 前言: 一.阅读这段系列之前,你必须花半天时间大致阅读微信公众平台的API文档,我尽量以简短快速的语言与大家分享一个过程 二.借助微信公众平台SDK Senparc.Weixin for C ...
- ubuntu系统下如何修改host
Ubuntu系统的Hosts只需修改/etc/hosts文件,在目录中还有一个hosts.conf文件,刚开始还以为只需要修改这个就可以了,结果发现是需要修改hosts.修改完之后要重启网络.具体过程 ...
- AJAX 大全
本章内容: 简介 伪 AJAX 原生 AJAX XmlHttpRequest 的属性.方法.跨浏览器支持 jQuery AJAX 常用方法 跨域 AJAX JsonP CORS 简单请求.复制请求.请 ...
- .NET平台和C#编程的总结
第一章 简单认识.NET框架 (1)首先我们得知道 .NET框架具有两个主要组件:公共语言进行时CLR(Common Language Runtime)和框架类库FCL(Framework ...
- Maven 代理设置
在maven的安装目录下 %MAVEN_HOME%/conf/setting.xml 中进行设置 <proxies> <!-- proxy | Specificatio ...
- APEX:对object中数据进行简单处理?
在Salesforce中,常常要对各种数据进行处理,已满足业务逻辑.本篇文章会介绍如何实现从object获取数据,然后将取得的数据进行一系列简单处理. 第一步:SongName__c 是一个新建的ob ...
- 屌丝giser成长记-大学篇
作为一名屌丝giser的我,刚接触gis专业是2007年的大一,好悲催,当时gis这个专业是被调剂的,我压根都不知道gis为何物,那时候gis冷门的一逼,报名这个专业的寥寥无几.记得那时候得知被调剂到 ...
- Android—基于GifView显示gif动态图片
android中显示gif动态图片用到了开源框架GifView 1.拷GifView.jar到自己的项目中. 2.将自己的gif图片拷贝到drawable文件夹 3.在xml文件中设置基本属性: &l ...
- TabLayout + ViewPager
一.实现思路 1.在build.gradle中添加依赖,例如: compile 'com.android.support:support-v4:23.4.0'compile 'com.android. ...