jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 使用CSS构建复杂形状大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_197_0@
@H_197_0@
我正在开发一个针对 iphoneandroid浏览器的项目,要求我构建一个类似温度计的进度表,它可以对浏览器调整大小做出反应,并且可以轻松地改变进度.它需要尽可能地像设计.也就是说,它需要花式渐变,嵌入突出显示,边框.

仪表:

jquery – 使用CSS构建复杂形状

注意白色插入阴影和边框

进展应延伸到圆形部分,并继续产生奇特的效果.

我继续前进,得到一个粗略的原型工作(用铬测试)http://jsfiddle.net/xduQ9/3/

html,body {
  padding: 25px;
}

.circle {
  margin-left: -6px;
  width: 48px;
  height: 48px;
  border-radius: 25px 25px 25px 24px;
  border: solid rgba(178,181,188,0.8) 1px;
  Box-shadow: inset 1px 2px 0 #fff,inset 1px -2px 0 #fff,inset -2px 0 0 #fff,inset -2px -2px 0 #fff,inset 0 3px 0 rgba(255,255,0.35),-20px -20px 0 #fff,20px -20px 0 #fff,20px 20px 0 #fff,-20px 20px 0 #fff;
}

.circle-wrap {
  overflow: hidden;
  width: 48px;
  height: 51px;
  position: absolute;
  right: 0;
}

.wrap {
  display: -webkit-Box;
  width: 100%;
  position: relative;
  height: 51px;
  overflow: hidden;
}

.progress {
  position: absolute;
  z-index: 0;
  height: 100%;
  width: 70%;
  @R_197_11442@kground: url("http://dl.dropBox.com/u/905197/white-Stripe-diagonal.png"),-webkit-linear-gradient(top,rgba(183,237,21,1) 0%,rgba(140,186,24,1) 28%,rgba(78,126,11,1) 65%,rgba(59,86,1) 99%);
}

.meter.complete .progress {
  width: 100%;
  -webkit-animation: progress-slide 0.6s linear infinite;
}

@-webkit-keyframes progress-slide {
  0% {
    @R_197_11442@kground-position: 0 0;
  }
  100% {
    @R_197_11442@kground-position: 25px 25px;
  }
}

.progress-cover {
  position: absolute;
  top: 19px;
  width: 70%;
  height: 12px;
  border-radius: 9px 0 0 9px;
  border: solid #70901b 1px;
  border-right: 0;
  z-index: 2;
}

.top-mask {
  position: absolute;
  Box-sizing: border-Box;
  width: 100%;
  height: 18px;
  padding-left: 45px;
  margin-left: -45px;
  @R_197_11442@kground: white;
  border-bottom: solid #b2b5bc 1px;
  border-radius: 0 0 33px 0;
  Box-shadow: 1px 2px 0 #fff,0 3px 0 rgba(255,0.35);
}

.bottom-mask {
  position: absolute;
  bottom: 0;
  Box-sizing: border-Box;
  width: 100%;
  height: 17px;
  padding-left: 45px;
  margin-left: -45px;
  @R_197_11442@kground: white;
  border-top: solid #b2b5bc 1px;
  border-radius: 0 19px 0 0;
  Box-shadow: 1px -2px 0 #fff;
}

.inner {
  position: absolute;
  top: 0;
  left: 2px;
  width: 3px;
  height: 12px;
  border: solid 3px #fff;
  border-right: none;
  border-radius: 5px 0 0 5px;
}

.meter {
  position: relative;
}

.left-border {
  position: absolute;
  top: 17px;
  left: -4px;
  width: 10px;
  height: 16px;
  border-radius: 12px 0 0 12px;
  border: solid 1px #b2b5bc;
  border-right: none;
  z-index: 3;
}
<div class="meter complete">
  <!-- Remove .complete to stop animation -->
  <div class="left-border">
    <div class="inner"></div>
  </div>
  <div class="wrap">
    <div class="progress"></div>
    <div class="top-mask"></div>
    <div class="bottom-mask"></div>
    <div class="circle-wrap">
      <div class="circle"></div>
    </div>
  </div>
</div>

该技术基本上剪切了一个带有条纹绿色背景的矩形,带有几个圆角的div,直到出现所需的形状.然后我使用一堆阴影来添加填充和仪表周围的插入.

我的问题:你会做什么?我的意思是,我可以稍微优化这个解决方案.我可以添加更多标记以使设计恰到好处,但感觉非常脏.而且我觉得跨浏览器测试并不容易.我虑过使用canvas,但是如果浏览器调整大小则必须重绘形状是很糟糕的.

我想尽可能避免使用图像,但如果可以使用它们,我肯定会使用它.

然能够改变进度条的颜色并不是实现的要求,但我想要一个具有这种能力的解决方案.

解决方法

你的小提琴不适用于firefox(Aurora)或IE.

我知道你不喜欢不使用图像,但我认为如果只使用图像,这将在代码中更加清晰.

为什么?因为你可以创建一个包含3个部分的精灵:
第一部分有仪表的外部部分,部分条形透明,第二部分有“条形”,第三部分只是白色以隐藏条形并给出百分比的印象.

然后你做一个简单的javascript代码,用于隐藏条右起的百分比(如果用户有24%然后位置-76pX).

我会完全按照显示的方式绘制条形图并使用z-index将仪表置于顶部,然后使用白色部分来伪造进度.
一开始就是一个大圈子.

圆圈将最终填满圆形部分(我不知道当前的仪表在那里是什么样的,如果你在那里直线,那么用方形而不是圆形).

画中的草图:

这个版本比纯CSS更容易,并且在所有浏览器上看起来都很相似.
使用流体div和流体图像大小的某些脚本也可以调整大小.

一旦你有一个比例,你想与其余的工作是简单的.

@H_197_0@

大佬总结

以上是大佬教程为你收集整理的jquery – 使用CSS构建复杂形状全部内容,希望文章能够帮你解决jquery – 使用CSS构建复杂形状所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:cssjquery使用复杂形状构建
猜你在找的jQuery相关文章
其他相关热搜词更多
phpJavaPython程序员load如何string使用参数jquery开发安装listlinuxiosandroid工具javascriptcap