Невозможно не выбрать элемент в IE, если на фоне есть изображение
Извините за то, что я снова задаю тот же вопрос, потому что я не прояснил вопрос так, чтобы никто не мог помочь мне прояснить мою путаницу вчера. Вот кодовая ручка(кажется, она не открывается в ie8). Я хочу перетащить 'move-obj', но он не работает в браузере IE (8,9,10), если на заднем плане есть изображения. Как я могу заставить эту демонстрацию работать на браузере IE выше IE8?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
.wrap{
position: relative;
width: 100%;
height: 100%;
background-color: #f0f0f0;
padding: 10%;
}
.wrap-inside{
position: absolute;
top: 100px;
left: 100px;
width: 502px;
height: 502px;
border: 1px solid #ddd;
}
.move-obj{
cursor: move;
position: absolute;
top: 100px;
left: 100px;
width: 100px;
height: 100px;
border: 1px solid blue;
background-color: rgba(0,0,0,0);//if I add the background, it will work correctly in IE9 IE10
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#00000000,endcolorstr=#00000000); //doesn't work in IE8
}
.bg{
top: 102px;
left: 102px;
width: 500px;
height: 500px;
position: absolute;
}
</style>
</head>
<body>
<div class="wrap">
<img class="bg" src="images/img1.jpg" alt="">//if this tag remove, it work correctly
<div class="wrap-inside">
<div class="move-obj"></div>
</div>
</div>
<script src="js/jquery.min.js"></script>
<script>
$('.move-obj').on('mousedown',function(e){
var start_x = e.pageX;
var start_y = e.pageY;
var $that = $(this);
var t_left = parseInt($that.css('left'));
var t_top = parseInt($that.css('top'));
$('.wrap-inside').on('mousemove',function(e){
$that.css({
left: t_left + e.pageX - start_x,
top: t_top + e.pageY - start_y
});
}).on('mouseup',function(e){
$(this).off('mousemove');
});
});
</script>
</body>
</html>
1 ответ
Решение
Просто установите прозрачное изображение для фона .move-obj
или вместо прозрачного изображения попробуйте установить его как url(about:blank)
также должен работать.