当前位置: 首页 > 面试题库 >

jQuery动画CSS边框半径属性(Webkit,Mozilla)

常自强
2023-03-14
问题内容

jQuery中 是否有办法为Webkit和Mozilla浏览器中的css3 border-radius 属性设置动画?

我还没有找到可以做到的插件。

-webkit-border-radius

-moz-border-radius

问题答案:

我本来希望像…

$("selector")
  .css({borderRadius: 10});
  .animate({borderRadius: 30}, 900);

…会工作。但是,我错了:Webkit允许您通过 设置 所有四个角的值borderRadius,但不允许您重新读取它-
因此,使用上面的代码,动画将始终从0开始而不是从10开始。IE具有相同的功能问题。Firefox 让您将其读回,因此一切正常。

好吧… border-radius在实现上有所不同。

幸运的是,有一种解决方法:只需单独指定每个角半径:

$("selector")
  .css({
    borderTopLeftRadius: 10, 
    borderTopRightRadius: 10, 
    borderBottomLeftRadius: 10, 
    borderBottomRightRadius: 10 })
  .animate({
    borderTopLeftRadius: 30, 
    borderTopRightRadius: 30, 
    borderBottomLeftRadius: 30, 
    borderBottomRightRadius: 30}, 900);

请注意,如果您希望保持与旧版浏览器的兼容性,则可以全力以赴,并使用旧版浏览器前缀的名称:

$("selector")
  .css({
    borderTopLeftRadius: 10, 
    borderTopRightRadius: 10, 
    borderBottomLeftRadius: 10, 
    borderBottomRightRadius: 10,
    WebkitBorderTopLeftRadius: 10, 
    WebkitBorderTopRightRadius: 10, 
    WebkitBorderBottomLeftRadius: 10, 
    WebkitBorderBottomRightRadius: 10, 
    MozBorderRadius: 10 
  })
  .animate({
    borderTopLeftRadius: 30, 
    borderTopRightRadius: 30, 
    borderBottomLeftRadius: 30, 
    borderBottomRightRadius: 30,
    WebkitBorderTopLeftRadius: 30, 
    WebkitBorderTopRightRadius: 30, 
    WebkitBorderBottomLeftRadius: 30, 
    WebkitBorderBottomRightRadius: 30, 
    MozBorderRadius: 30 
  }, 900);

但是,这开始变得非常疯狂。如果可能,我会避免这样做。



 类似资料:
  • 问题内容: 我在弄清楚为什么在使用chrome而不是firefox或ie9时为什么#screen元素的边框半径消失了? 对于每个浏览器,我都有所有不同的前缀以及标准的border-radius: 保存图片的上方内容框称为#screen 屏幕css的副本粘贴: 是因为chrome无法正确处理图像的“裁剪”吗?我认为这只是一个问题,当您在圆角容器中包含实际标签时,而不是通过css将img称为背景图像时

  • 问题内容: 我有以下在Fi​​refox,Chrome和Safari中可用的工具。但不是在IE9中。它在td的左上和右上应用圆角。我想念什么? 问题答案: 您是否已将其放在HTML文档的顶部(在标记上方) IE9要求此网站显示新的HTML5 / CSS3内容 编辑:或许多其他Doctype(XHTML等,但这是最短和最容易记住的)

  • 问题内容: 我想在圆圈内有一个正方形的图像。 当用户将鼠标悬停在图像上时,图像应缩放(放大)。 圆应保持相同大小。 仅在CSS过渡期间,方形图像才与圆形重叠(好像overflow:hidden根本不存在)。 这是一个在Chrome和Safari中具有怪异行为的演示:http : //codepen.io/jshawl/full/flbau 在Firefox中正常工作。 问题答案: 我删除了一些多余

  • 问题内容: 我正在尝试使用CSS创建一个圆, …只有一个div: 并仅使用CSS定义。不允许使用SVG,WebGL,DirectX等。 我尝试绘制一个完整的圆,然后将另一个圆与另一个圆淡化div,它确实起作用,但是我正在寻找一种更优雅的选择。 问题答案: 您可以使用border-top-left-radius和border-top-right- radius属性根据框的高度(和添加的边框)在框上四

  • 问题内容: 我正在尝试绘制一个带有边框半径的圆并为其设置动画。我可以这样做,但是我不能做的是覆盖元素并将圆形背景设置为透明,而无需取消隐藏蒙版。我无法使它在元素上透明,因为在旋转模拟模仿效果时,需要应用遮罩以隐藏圆的左半部分。 HTML CSS 在我的示例中,我需要将蓝色背景更改为透明,在开始旋转之前不取消隐藏边框半径。 请原谅这些颜色,这些不是我要使用的颜色,但是可以提供一种更清晰的解决方法。

  • 问题内容: 使用以下HTML,我需要: 确保(粉红色)的边框与红色边框div 相邻。 必须在任何边界半径值上工作。 考虑到: 我正在使用,但也可以重置为默认值。 我无法更改div 的属性。 笔记: 在此特定示例中,我不需要绕圈:)。 问题答案: 问题的第1部分:( 孩子在原始演示中成为一轮) 问题是由于。当设定,在限定的高度,箱(250×250像素)的宽度被认为是包括的宽度的和。因此,元素的实际内