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 ...
随机推荐
- Hawk 4.4 执行器
执行器是负责将Hawk的结果传送到外部环境的工具.你可以写入数据表,数据库,甚至执行某个特定的动作,或是生成文件等等. 在调试模式下,执行器都是不工作的.这是为了避免产生副作用.否则,每刷新一遍数据, ...
- C#向PPT文档插入图片以及导出图片
PowerPoint演示文稿是我们日常工作中常用的办公软件之一,而图片则是PowerPoint文档的重要组成部分,那么如何向幻灯片插入图片以及导出图片呢?本文我将给大家分享如何使用一个免费版Power ...
- 【Reading Note】算法读书杂记
1 排序 排序基本信息 稳定性:排序前大的数在排序后,大的数依然保持不变就是稳定排序,反之不稳定 内外排序:根据待排序的记录是否放在内存里面区分的.诸如:插入排序(直接插入&希尔).交换排序( ...
- dotNet Core开发环境搭建及简要说明
一.安装 .NET Core SDK 在 Windows 上使用 .NET Core 的最佳途径:使用Visual Studio. 免费下载地址: Visual Studio Community 20 ...
- Android 工具-adb
Android 工具-adb 版权声明:本文为博主原创文章,未经博主允许不得转载. Android 开发中, adb 是开发者经常使用的工具,是 Android 开发者必须掌握的. Android D ...
- NodeJs支付宝移动支付签名及验签
非常感谢 :http://www.jianshu.com/p/8513e995ff3a?utm_campaign=hugo&utm_medium=reader_share&utm_co ...
- 体验报告:微信小程序在安卓机和苹果机上的区别
很多人可能会问:微信小程序和在微信里面浏览一个网页有什么区别? 首先,小程序的运行是全屏的,界面跟进入了一个APP很像,更为沉浸跟在微信里面访问h5不一样:其次,它的浏览体验更为稳定. 不过,这还不够 ...
- 原生JavaScript实现hasClass、addClass、removeClass、toggleClass
兼容IE6+,因IE6.IE7.IE8不支持Array.prototype.indexOf()和String.prototype.trim(),分别用Polyfill实现支持. 详细: indexOf ...
- Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目
默认,在用vs2013开发SharePoint项目时,vs没有提供一般应用程序(.ashx)的项目模板,本文解决此问题. 以管理员身份启动vs2013,创建一个"SharePoint 201 ...
- BPM配置故事之案例1-配置简单流程
某天,Boss找到了信息部工程师小明. Boss:咱们新上了H3 BPM,你研究研究把现在的采购申请流程加上去吧,这是采购申请单. 小明:好嘞 采购申请单 小明回去后拿着表单想了想,开始着手配置. 他 ...