Сдвиг блока вправо за границу экрана
Здравствуйте!
Вот возникла необходимость сделать такую штуку: Несколько плиток меню, при клике по любой плитке, все они уезжают вправо за экран, а слева выезжает блок с дополнительной информацией. Реализовать это вроде проблем не составило, но стало появляться поле горизонтальной прокрутки, убрал его overflow-x: hidden. Вроде все хорошо, но на мобильных браузерах всеравно остается возможность прокрутки до сдвинутых плиток меню. Попытался решить это при помощи fadeOut(0), после завершения анимации, на настольном вообще шикарно - можно и без overflow-x:hidden обойтись, а на мобильных браузерах стало все прыгать. Собственно говоря, есть какой-либо способ сдвинуть блок вправо за границу экрана и так, чтобы не появлялась полоса прокрутки ни на настольных браузерах, ни на мобильных. Вот код: JavaScript
<script>
$('#service-logo').on('click', '#click-6', function(e){
$('#service-logo').animate({
left: "+=100%",
}, 1500 );
$('#data-6').animate({
left: "50%",
}, 1500 );
});
$('.more-data').on('click', '#close-6', function(e){
$('#service-logo').animate({
left: "-=100%"
}, 1500 );
$('#data-6').animate({
left: "-100%",
}, 1500 );
});
</script>
Разметка <article> <div class="more-data" id="data-6">Lorem IPSUM Dolor <p class="service-close" id="close-6">X</p> </div> <ul id="service-logo"> <li id="click-6"> <p>LOREM IPSUM</p> <img src="images/service-logos/service-logo-6.png" /> <div class="description">***<br /> Lorem ipsum 1<br /> Lorem ipsum 2<br /> Lorem ipsum 3<br /> Lorem ipsum 4<br /> ***</div> </li> </ul> </article> Стили Код:
<style> |
dalis,
Вариант ...
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title><style>
#service-logo {
position: absolute;
width: 1200px;
height: 520px;
margin: 0 auto;
}
#service-logo li {
float: left;
width: 200px;
height: 520px;
background: #b0b0b0;
border: 2px dashed #d1d1d1;
color: #f6f6f6;
}
#service-logo img {
width: 140px;
margin: 20px 0 0 30px;
}
#service-logo li p {
text-align: center;
margin: 5px 0 0 0;
}
.description {
text-align: center;
line-height: 48px;
}
.more-data {
width: 700px;
max-height: 518px;
position: absolute;
left: -100%;
background: #b0b0b0;
outline: 2px dashed #cdcdcd;
padding: 40px 20px 10px 20px;
color: white;
margin: auto 15%;
}
.service-close {
position: absolute;
top: 7px;
right: 10px;
cursor: pointer;
}
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
</head>
<body>
<article>
<div class="more-data" id="data-6">Lorem IPSUM Dolor
<p class="service-close" id="close-6">X</p>
</div>
<div style="width: 100%; position: fixed">
<ul id="service-logo">
<li id="click-6">
<p>LOREM IPSUM</p>
<img src="images/service-logos/service-logo-6.png" />
<div class="description">***<br />
Lorem ipsum 1<br />
Lorem ipsum 2<br />
Lorem ipsum 3<br />
Lorem ipsum 4<br />
***</div>
</li>
</ul>
</div>
</article>
<script>
$('#service-logo').on('click', '#click-6', function(e){
$('#service-logo').animate({
left: "+=100%",
}, 1500 );
$('#data-6').animate({
left: "0%",
}, 1500 );
});
$('.more-data').on('click', '#close-6', function(e){
$('#service-logo').animate({
left: "-=100%"
}, 1500 );
$('#data-6').animate({
left: "-100%",
}, 1500 );
});
</script>
</body>
</html>
|
рони
решение клевое :) но увы, этот блок находится не совсем наверху, до него скроллить приходится, а из-за position:fixed - доскролливать до него можно всю жизнь (хотя, если в iframe засунутьь:) ) :)) но, большое спасибо :) но вот уже не надо, убедил, чтобы блок влево уходил, а не в право :) |
| Часовой пояс GMT +3, время: 06:52. |