CSS在IE9中动态更改位置

CSS在IE9中动态更改位置,css,Css,在IE 9及之前的版本中,是否有任何方法可以动态地将元素的位置样式从“绝对”更改为“固定” 换句话说,我们希望一个元素在页面上垂直移动,直到到达窗口顶部,然后在该点将其固定,这样它就不会再向上移动了?有意义吗?使用jQuery? 它只适用于我的IE 9副本 document.getElementById('foo').style.position = 'fixed'; 您要寻找的是一种基于另一个页面内条件更改此值的方法 我建议您需要类似的东西(使用jQuery): var-targetElem

在IE 9及之前的版本中,是否有任何方法可以动态地将元素的位置样式从“绝对”更改为“固定”

换句话说,我们希望一个元素在页面上垂直移动,直到到达窗口顶部,然后在该点将其固定,这样它就不会再向上移动了?有意义吗?

使用jQuery?

它只适用于我的IE 9副本

document.getElementById('foo').style.position = 'fixed';

您要寻找的是一种基于另一个页面内条件更改此值的方法

我建议您需要类似的东西(使用jQuery):

var-targetElement=$(“#您的固定绝对元素”);
var togglePixelY=100;//改变以适应你的需要
$(窗口).bind('scroll resize',function(){
if($(this.css('scrollTop')切换像素&&!targetElement.hasClass('fixed')){
targetElement.addClass('fixed').removeClass('absolute');
}
});
下面是另一个有用的问题,您可以阅读:


这里有一些插件(比如“sticky sidebar”)和一个很好的教程:

你想使用什么触发器?悬停,点击?我们需要更多信息!请指定是指使用JavaScript、CSS还是动态生成的内联样式。一个可能的选择是使用条件样式表,因为IE将选择它匹配的样式表,并包括对那些元素位置的覆盖,这些元素的类/选择器与您想要更改的类/选择器匹配。另一个选择是使用类似Modernizer的东西向html标记(或其他适当的标记)添加类,并在外部样式表中处理所有这些。后者可以与jQuery(或其他库)一起使用,在匹配元素上切换类或样式。您可以展开吗?@MyStream-更新了我的问题更新显著地改变了问题。@Imran Omar Bukhsh-然后我建议您找出它失败的地方(事件未触发、变量未设置等),花几分钟时间与Google一起找出IE是否对该事件/变量/等有问题,然后提出一个新问题(因为听起来你所有的问题都与条件有关,而不是与设置属性有关),其中包括你所拥有的代码和你所执行的调查。@Imran Omar Bukhsh-嗯,(a)问题说^w没有任何关于将其更改回去的内容,以及(b)thanx让我知道了这一点,帮助我意识到问题出在代码的其他地方。document.body.scrollTop在IE中不起作用,而jquery修复了它
var targetElement = $('#your-fixed-absolute-element');
var togglePixelY = 100; // change to suit your needs
$(window).bind('scroll resize',function(){
  if($(this).css('scrollTop') <= togglePixelY && !targetElement.hasClass('absolute')) {
     targetElement.addClass('absolute').removeClass('fixed');
  } else if($(this).css('scrollTop') > togglePixelY && !targetElement.hasClass('fixed')) {
     targetElement.addClass('fixed').removeClass('absolute');
  }
});