之前写过的一段简单的demo,后来在IE10以下使用的时候发现无法使用,先上一段代码
HTML:
<div class="all" id="box">
<img id="image" src="psb.png" width="512" height="1470" >
<span id="up"></span>
<span id="down"></span>
</div>
CSS:
.all{
position: relative;
width: 512px;
height: 400px;
border: 1px solid #000;
margin:100px auto;
overflow: hidden;
}
span{
width: 512px;
height: 200px;
position: absolute;
left:;
top:;
cursor: pointer;
}
#down{
top: auto;
bottom:;
}
JS:
var ops = document.getElementById('image'),
oup = document.getElementById('up'),
odown = document.getElementById('down'),
obox = document.getElementById('box'),
timer = null;
num = 0; oup.onmouseover = function(){
clearInterval(timer);
timer = setInterval(function(){
num -= 4;
if(num < -1070){
num = -1070;
clearInterval(timer);
}
ops.style.marginTop = num+'px';
},30)
} odown.onmouseover = function(){
clearInterval(timer);
timer = setInterval(function(){
num += 4;
if(num > 0){
num = 0;
clearInterval(timer);
}
ops.style.marginTop = num+'px';
},30)
} obox.onmouseout = function(){
clearInterval(timer);
}
实现的效果就是当鼠标移动到上面span的时候,图片向上移动,移动到下面span的时候,图片向下移动,离开则停止。
然而在IE10以下版本鼠标移上span的时候没有任何效果。
进过多次测试,发现了两种解决办法
方法一:
进过测试发现如果给span加上背景颜色的话, 鼠标移上又有效果了
增加代码:
background: #fff;
opacity: 0;
filter:alpha(opacity=0);
添加背景色,然后设置为透明,因为opacity有兼容问题,所以加上filter,最后效果和之前完全一样
方法二:
后来问了朋友,说是img标签在IE10嵌套以下会有,所以把img标签放到div外面来
<img id="image" src="psb.png" width="512" height="1470" >
<div class="all" id="box">
<span id="up"></span>
<span id="down"></span>
</div>
然后再把样式修改好,最后也是可以解决问题