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 ...
随机推荐
- 【.net 深呼吸】细说CodeDom(7):索引器
在开始正题之前,先补充一点前面的内容. 在方法中,如果要引用方法参数,前面的示例中,老周使用的是 CodeVariableReferenceExpression 类,它用于引用变量,也适用于引用方法参 ...
- Fis3的前端工程化之路[三大特性篇之内容嵌入]
Fis3版本:v3.4.22 Fis3的三大特性 资源定位:获取任何开发中所使用资源的线上路径 内容嵌入:把一个文件的内容(文本)或者base64编码(图片)嵌入到另一个文件中 依赖声明:在一个文本文 ...
- ASP.NET Aries 入门开发教程7:DataGrid的行操作(主键操作区)
前言: 抓紧勤奋,再接再励,预计共10篇来结束这个系列. 上一篇介绍:ASP.NET Aries 入门开发教程6:列表数据表格的格式化处理及行内编辑 本篇介绍主键操作区相关内容. 1:什么时候有默认的 ...
- [.NET] 打造一个很简单的文档转换器 - 使用组件 Spire.Office
打造一个很简单的文档转换器 - 使用组件 Spire.Office [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/6024827.html 序 之前,& ...
- 《你不知道的JavaScript》整理(四)——原型
一.[[Prototype]] JavaScript中的对象有一个特殊的[[Prototype]]内置属性,其实就是对于其他对象的引用. var myObject = { a: 2 }; myObje ...
- C++随笔:从Hello World 探秘CoreCLR的内部(1)
紧接着上次的问题,上次的问题其实很简单,就是HelloWorld.exe运行失败,而本文的目的,就是成功调试HelloWorld这个控制台应用程序. 通过我的寻找,其实是一个名为TryRun的文件出了 ...
- ,net core mvc 文件上传
工作用到文件上传的功能,在这个分享下 ~~ Controller: public class PictureController : Controller { private IHostingEnvi ...
- 电信计费业务:预后融合OCS到底应该实扣还是虚扣?
引入OCS的初衷之一是为了让计费系统能够参与到用户的通讯控制中来,也就是所谓的实时信控.用户在没有余额时,通讯就会被停止,不会造成"天价欠费 ",一方面保障用户的利益,一方面也保障 ...
- 如何使用本地账户"完整"安装 SharePoint Server 2010+解决“New-SPConfigurationDatabase : 无法连接到 SharePoint_Config 的 SQL Server 的数据 库 master。此数据库可能不存在,或当前用户没有连接权限。”
注:目前看到的解决本地账户完整安装SharePoint Server 2010的解决方案如下,但是,有但是的哦: 当我们选择了"完整"模式安装SharePointServer201 ...
- android SystemServer.java启动的服务。
EntropyService:熵(shang)服务,用于产生随机数PowerManagerService:电源管理服务ActivityManagerService:最核心服务之一,Activity管理 ...