`

bootstrap在IE9里没有动画效果的原因

 
阅读更多

bootstrap是非常棒的前端开发套件。

 

但是在IE浏览器里,效果没有chrome,firefox好。原因是因为最新的普及版 IE9对CSS3仍然支持不到位。

 

我研究了不能展现动画效果的问题。

 

举个例子 alert 插件。

 

 

<div class="fade in alert">

<button type="button" class="close" data-dismiss="alert">&times;</button>

<strong>Warning!</strong> Best check yo self, you're not looking too good.

</div>

 

在chrome下,点击 X 可以渐隐整个alert提示。但是在IE下就不能。

我在查看源代码前,一直认为bootstrap的动画效果是依靠jquery的。但是实际却是依靠css3。

 

!function ($) {

  "use strict"; // jshint ;_;


 /* ALERT CLASS DEFINITION
  * ====================== */

  var dismiss = '[data-dismiss="alert"]'
    , Alert = function (el) {
        $(el).on('click', dismiss, this.close)
      }

  Alert.prototype.close = function (e) {
    var $this = $(this)
      , selector = $this.attr('data-target')
      , $parent

    if (!selector) {
      selector = $this.attr('href')
      selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
    } else {
		alert('fuck');
	}

    $parent = $(selector)

    e && e.preventDefault()

    $parent.length || ($parent = $this.hasClass('alert') ? $this : $this.parent())

    $parent.trigger(e = $.Event('close'))

    if (e.isDefaultPrevented()) return

    $parent.removeClass('in')

    function removeElement() {
      $parent
        .trigger('closed')
        .remove()
    }

    $.support.transition && $parent.hasClass('fade') ?
      $parent.on($.support.transition.end, removeElement) :
      removeElement()
  }


 /* ALERT PLUGIN DEFINITION
  * ======================= */

  var old = $.fn.alert

  $.fn.alert = function (option) {
    return this.each(function () {
      var $this = $(this)
        , data = $this.data('alert')
      if (!data) $this.data('alert', (data = new Alert(this)))
      if (typeof option == 'string') data[option].call($this)
    })
  }

  $.fn.alert.Constructor = Alert


 /* ALERT NO CONFLICT
  * ================= */

  $.fn.alert.noConflict = function () {
    $.fn.alert = old
    return this
  }


 /* ALERT DATA-API
  * ============== */

  $(document).on('click.alert.data-api', dismiss, Alert.prototype.close)

}(window.jQuery);

 

看遍以上这个插件没发现任何jquery.fadeIn()函数的踪影。

其实,实际起到fadeIn作用的是 $parent.removeClass('in'),即去掉div的in样式表。我们看到div有fade和in两个样式表。为什么一旦去掉in就会有渐隐效果呢(在chrome里)?

我们看看bootstrap.css里的

 

.fade {
  opacity: 0;
  -webkit-transition: opacity 0.15s linear;
     -moz-transition: opacity 0.15s linear;
       -o-transition: opacity 0.15s linear;
          transition: opacity 0.15s linear;
}

.fade.in {
  opacity: 1;
}

 这里可以看到chrome运用css3的-webkit-transition的样式来达到这一目的,将 in 去掉后,只剩fade,则-webkit-transition执行 linear动作,将透明度以0.15s的速度降为0,这样就实现了渐隐效果。

 

同样的,我们还可以看到collapse插件的高度渐减效果,也是用css3实现

.collapse {
  position: relative;
  height: 0;
  overflow: hidden;
  -webkit-transition: height 0.35s ease;
     -moz-transition: height 0.35s ease;
       -o-transition: height 0.35s ease;
          transition: height 0.35s ease;
}

 

而一切的一切,都是因为fuck IE不支持transition这个css3特性。和bootstrap用没用jquery无关。

 

最后我想说,chrome must be winner for freedom.

 

分享到:
评论

相关推荐

    bootstrap-ie8_ie9.rar

    5. ** Custom CSS **:可能提供了一套针对IE8和IE9的定制CSS,用于修复某些样式问题,比如替换动画效果、调整过渡和过渡延迟等。 为了使Bootstrap在IE8和IE9上正常运行,你需要按照以下步骤操作: 1. 在页面头部...

    bootstrap-ie11:用于Bootstrap 5的Internet Explorer 11兼容性解决方案

    然而,Bootstrap 5在发布时已经放弃了对Internet Explorer 11(IE11)的支持,这使得仍然需要在IE11环境中运行的项目面临挑战。"bootstrap-ie11"项目就是为了解决这个问题而诞生的,它旨在为Bootstrap 5提供IE11的...

    Bootstrap v3.3.7 中文文档

    Bootstrap v3.3.7是Twitter推出的一个开源前端框架,它极大地简化了网页设计和开发流程,尤其在响应式布局和移动设备优先的设计策略上表现出色。这个版本是Bootstrap 3系列的最后一个稳定版本,因此对于那些需要支持...

    Bootstrap3.3.7开发手册

    7. **兼容性**:Bootstrap 3.3.7对大部分现代浏览器有着良好的支持,包括Chrome、Firefox、Safari、Edge和IE9+。 8. **Chm文件**:Bootstrap3.3.7.chm是一个帮助文档,通常包含详细的API参考、示例代码和使用教程,...

    bootstrap库

    CSS文件(通常为`bootstrap.css`或`bootstrap.min.css`)用于设置页面的基本样式和布局,而JavaScript文件(通常是`bootstrap.js`或`bootstrap.min.js`)则提供了交互性功能,如下拉菜单、模态框的动画效果等。...

    轮播图效果(原生js+jquery+bootstrap三种)

    Bootstrap是流行的前端框架,内置了轮播组件(Carousel),它基于jQuery,提供了丰富的样式和动画效果。使用Bootstrap实现轮播图,首先需要在页面中引入Bootstrap的CSS和JS文件。接着,通过HTML5的`...

    bootstrap4.zip

    5. **更强的浏览器兼容性**:Bootstrap 4 支持现代浏览器,同时也对 IE9+ 和 Safari 8+ 进行了兼容。 通过这个"bootstrap4.zip"压缩包,你可以迅速启动一个基于 Bootstrap 的项目,享受它带来的强大功能和便捷性。...

    bootstrap-paginatorAPI文档1

    `bootstrapTooltipOptions`对象提供了配置Bootstrap Tooltip的各种选项,如动画、位置、容器等。 `onPageClicked`和`onPageChanged`是两个重要的回调函数,分别在点击分页按钮时和页面变化时触发,提供事件处理的...

    bootstrap3和4及jquery

    此外,Bootstrap3依赖于jQuery库,jQuery是一个强大的JavaScript库,简化了DOM操作、事件处理和动画效果。 jQuery.min.js是jQuery的压缩版,用于在网页中引入jQuery库。它提供了一种简洁的API,使得开发者能更高效...

    bootstrap字体图标资源

    Bootstrap通过引入字体图标库,为开发者提供了一种简洁、高效的方式来展示图形元素,这些图标通常以矢量格式存在,具有清晰、可缩放且在不同分辨率下都能保持良好显示效果的优点。 Bootstrap的字体图标库主要基于...

    jquery+bootstrap+layui前端框架三件套

    5. **动画效果**:提供了一系列内置的动画方法,如fadeIn/fadeOut、slideToggle等。 **Bootstrap:响应式设计的利器** Bootstrap,版本3.3.7,是Twitter开源的一个HTML、CSS和JS框架,主要用于创建响应式布局和...

    Ladda for Bootstrap 3按钮加载插件

    1. **加载动画**:Ladda 提供了多种加载动画效果,如旋转、滑动等,这些效果可以在按钮上动态展示,给用户一种实时反馈的感觉,让他们知道系统正在处理请求。 2. **兼容性**:Ladda for Bootstrap 3 支持 IE8 及...

    bootstrap fileinput 表单上传相关资源

    通过使用jQuery插件的形式,它可以在大部分现代浏览器中正常工作,但在旧版IE中可能需要额外的 polyfill 支持。 7. **服务器端处理**:FileInput仅负责前端的文件选择和预览,实际的文件上传需要与后端服务器进行...

    bootstrap 管理后台模板

    在Bootstrap管理后台模板中,jQuery通常与Bootstrap插件配合使用,实现如模态框、下拉菜单、轮播图等动态效果。 4. **响应式设计**:响应式设计是网页设计的一种方法,它允许网页根据用户的行为和设备环境(系统...

    前端项目-bootstrap-sweetalert.zip

    这个项目基于流行的Bootstrap框架,因此它继承了Bootstrap的美观和响应式设计,使得在不同设备上都能呈现出一致且良好的视觉效果。 在前端开发中,经常需要向用户显示一些提示信息,如确认操作、显示警告或成功消息...

    Gleek 非常漂亮优秀的前端模板 bootstrap4

    Gleek充分利用了Bootstrap4的响应式特性,确保网页在不同设备上(如桌面、平板、手机)都能呈现良好的视觉效果和用户体验。Bootstrap4的栅格系统使得页面元素可以自动调整大小和排列,适应不同屏幕尺寸。 3. **CSS...

    C# mvc框架创建文档 基于bootstrap前端框架

    - **跨浏览器兼容性**:选择了支持IE8的库版本,这在构建面向旧版浏览器用户的网站时非常有用,但也要注意新的开发标准和工具可能不支持旧版浏览器,因此在新的项目中通常会鼓励使用支持最新浏览器的技术栈。...

    bootstrap及jquery的jar包

    4. 跨浏览器兼容性:Bootstrap致力于在所有主流浏览器上提供一致的用户体验,包括Chrome、Firefox、Safari、Edge和IE9+。 jQuery的主要优点有: 1. DOM操作:jQuery提供了一种简单的方式来选择、操作和修改HTML元素...

    互联网公司bootstrap模板

    至于"yzts_3_booom",根据命名规则推测,它可能是一个CSS样式表或者是JavaScript文件,用于定制或扩展Bootstrap的默认样式和功能,比如动画效果或特定的交互行为。 在实际使用这个模板时,开发者可以根据自己的需求...

    (bootstrap3)ace-master.zip

    同时,它支持与jQuery库的无缝集成,jQuery是一个轻量级、功能丰富的JavaScript库,用于简化DOM操作、事件处理、动画效果以及Ajax交互。 在Bootstrap3 Ace-Master中,你可以找到以下关键知识点: 1. **响应式设计*...

Global site tag (gtag.js) - Google Analytics