2013-06-25 3 views
2

Я работаю над проектом Javascript. Я создал div с переполнением, и я бы прокрутил этот div только с помощью мыши (без бара). Я следовал this рабочем примере как в браузере, так и в мобильных версиях. Вот мой HTML код:Прокрутка не работает в мобильной версии

<div id="wrapper"> 
    <div id="scroller"> 
     ... divs, boxes generated by jQuery ... 
    </div> 
</div> 

И вот CSS:

#wrapper { 
margin-left: 45px; 
position: absolute; 
width: 900px; 
overflow: hidden; 
} 
#scroller { 
width: 100%; 
height: 100px; 
margin: 0px auto; 
overflow: auto; 
} 

Теперь проблема заключается в том, что это работает в браузере, но не в мобильном (без прокрутки).

EDIT:

#scroller div.line { 
position: absolute; 
margin-left: 2.5px; 
margin-top: 39px; 
border-bottom: 3px solid; 
border-color: #dd4b39; 
} 
#scroller div.ranges { 
position: absolute; 
width: 90%; 
text-align:left; 
margin-left: 5px; 
margin-top: 70px; 
} 
#scroller box.range { 
position:absolute; 
display: inline-block; 
width: 30px; 
height: 15px; 
border-radius: 15%; 
-moz-box-shadow:0px 0px 10px 1px #777777; 
-webkit-box-shadow:0px 0px 10px 1px #777777; 
-ms-box-shadow:0px 0px 10px 1px #777777; 
-o-box-shadow:0px 0px 10px 1px #777777; 
box-shadow:0px 0px 10px 1px #777777; 
background-image: -ms-linear-gradient(top left, #A8A8A8 0%, #BFBFBF 100%); 
background-image: -moz-linear-gradient(top left, #A8A8A8 0%, #BFBFBF 100%); 
background-image: -o-linear-gradient(top left, #A8A8A8 0%, #BFBFBF 100%); 
background-image: -webkit-gradient(linear, left top, right bottom, color-stop(0, #A8A8A8), color-stop(1, #BFBFBF)); 
background-image: -webkit-linear-gradient(top left, #A8A8A8 0%, #BFBFBF 100%); 
background-image: linear-gradient(to bottom right, #A8A8A8 0%, #BFBFBF 100%); 
z-index: 2; 
} 
#scroller div.lrange { 
position:absolute; 
display: inline-block; 
width: 15px; 
height: 100px; 
margin-top: -70px; 
border-right: 1px dotted; 
border-color: #dd4b39; 
} 
#scroller div.circle_small { 
position: absolute; 
cursor: pointer; 
display: inline-block; 
margin: 0 3px; 
margin-top: 32.5px; 
width: 15px; 
height: 15px; 
border-radius: 50%; 
background: #CC3524; 
background: -webkit-linear-gradient(top, #d14836, #dd4b39); 
background: -moz-linear-gradient(top, #d14836, #dd4b39); 
background: -ms-linear-gradient(top, #d14836, #dd4b39); 
background: -o-linear-gradient(top, #d14836, #dd4b39); 
background: -linear-gradient(top, #d14836, #dd4b39); 
} 
#scroller div.circle_big { 
position: absolute; 
cursor: pointer; 
display: inline-block; 
margin: 0px 3px; 
width: 40px; 
height: 40px; 
margin-top: 20px; 
border-radius: 50%; 
background: #CC3524; 
background: -webkit-linear-gradient(top, #d14836, #dd4b39); 
background: -moz-linear-gradient(top, #d14836, #dd4b39); 
background: -ms-linear-gradient(top, #d14836, #dd4b39); 
background: -o-linear-gradient(top, #d14836, #dd4b39); 
background: -linear-gradient(top, #d14836, #dd4b39); 
} 
#scroller div.circle_label { 
cursor: pointer; 
text-align: center; 
font-size: 20px; 
padding: 8px; 
} 
+0

К сожалению, у меня нет решения проблемы. Просто незапрашиваемое мнение. Такая вещь может оказаться очень раздражающей на мобильном телефоне (или браузером, если на то пошло). Я чувствую, что я ожидаю, что браузер переместится в сторону (как это обычно бывает), но вместо этого я буду перемещать текст в этом поле. Просто мое мнение. У вас вполне может быть определенный UX, который работает, просто подумал, что я бы сказал об этом. – Gray

+0

Какие стили связаны с divs, созданных jquery? – miah

+0

Я пытаюсь создать временную шкалу. См. EDIT – blueSurfer

ответ

0

Может быть поздно, но все же полезно - я столкнулся с той же проблемой с свитком в мобильной версии сайта и обнаружили, что это позиция: абсолютная; это нарушает его.

НО! Существует решение - http://iscrolljs.com/ Я нашел это очень полезным.

В основном вы просто инициализируете плагин на оболочном элементе без каких-либо изменений в DOM, и все работает.

0

, добавив этот стиль в свой тег div, он решит вашу проблему.

<div style="-webkit-overflow-scrolling: touch;overflow-y: scroll;">