2015-07-30 3 views
3

I have made a website that shows 3D CS:GO Skinsотключить прокрутку на iframe, пока не нажмете?

я имею проблему с iframe/дизайн

когда вы прокрутки вверх или вниз страницы, как только вы получите в IFRAME он начинает зумирование в/на модели

В настоящее время единственный способ я могу отключить функцию масштабирования является остановив все это вместе, изменив источник ссылку IFrame от

https://sketchfab.com/models/63b30614212c460fbee04d85eabd9c83/embed?autospin=0.2&autostart=1&camera=0&waitresources=1&ui_stop=0&transparent=1&ui_related=0&scrollwheel=1

в

https://sketchfab.com/models/63b30614212c460fbee04d85eabd9c83/embed?autospin=0.2&autostart=1&camera=0&waitresources=1&ui_stop=0&transparent=1&ui_related=0&scrollwheel=0

(изменение колесо прокрутки = 1 до ScrollWheel = 0)

есть ли способ, что я могу отключить IFrame прокруткой взаимодействие пока IFrame не была нажата на или с помощью флажка/кнопки или чего-то подобного, что могло бы переключить его?

предпочитают ответ с помощью JQuery/PHP/HTML, но ничего, что фиксирует это поможет Тонна

Благодаря

+0

сделать вас все еще хотите функцию масштабирования прокрутки после нажатия кнопки iframe? – harrrrrrry

+0

да, пожалуйста, просто не нужно, чтобы прокрутка работала над iframe, прежде чем вы взаимодействуете с ним, если есть способ остановить его снова после нажатия на iframe тоже будет хорошо – RedSparr0w

+0

Единственное, что я нашел близко к тому, что мне нужно [this] (http://jsfiddle.net/rhpNc/), но я не хочу, чтобы пользователю приходилось перезагружать iframe каждый раз, когда они переключаются между двумя режимами, если это возможно (также ссылка не вернется к первому после переключения для меня) – RedSparr0w

ответ

2

Если ваш iframe является фиксированным размером, немедленно следуйте ему с помощью ссылки с возможностью клика, которая соответствует размеру iframe, но не содержит ничего. Дайте ему отрицательный верхний край, поэтому он перемещается вверх по вершине iframe. Затем скройте его, как только он будет нажат.

HTML:

<a id='clearBox' href='javascript:removeClearBox()'>&nbsp;</a> 

Javascript:

function removeClearBox() { 
    $('#clearBox').addClass('hidden'); 
} 

CSS:

#clearBox { 
    width: [iframe width]px; 
    height: [iframe height]px; 
    display: block; 
    margin-top: -[iframe height]px; 
    text-decoration: none; 
} 

/*in case you don't have a .hidden class:*/ 
.hidden { display: none; } 

Вам также может понадобиться, чтобы играть с z-index, в зависимости от того, что в IFRAME, но это легко достаточно, чтобы понять.

Ваши стили могут отличаться, и также возможно использование динамического размера с большим количеством javascript.

+0

, это отлично работает. есть ли способ, которым я мог бы удалить его, скрытый при щелчке по телу (excl iframe)? – RedSparr0w

+0

Я не уверен, что он будет каскадом к iframe, но возможно '$ ('body'). Click (function() {$ ('# clearBox'). RemoveClass ('hidden');});' – SuperJer

+1

@ RedSparr0w Хороший сайт. Мне нравится ваше решение для повторного включения прокрутки. – SuperJer

1

Попробуйте изменить SRC в IFrame после того, как вы отслеживаете по щелчку пользователя.

например.

$('body').click(function(){ 
    $('iframe').prop('src', newUrlWithScrollwheel); 
}); 

Также поплавок элемент выше этого фрейма является значительным выбором тоже, как если вы нажмете в IFRAME, эта функция нажмите не может работать, как это только для родительского окна.

+0

«newurlwithscrollwheel» относится к той, которая позволяет масштабировать? – RedSparr0w

+0

, похоже, не работает для меня – RedSparr0w

+0

@ RedSparr0w plz добавить кавычки к вашему newUrlWithScrollwheel как строку. – harrrrrrry

1

Вы можете изменить встроенный URL-запрос на лету.

var scroll = 1; 
    var url = 'https://sketchfab.com/models/63b30614212c460fbee04d85eabd9c83/embed?autospin=0.2&autostart=1&camera=0&waitresources=1&ui_stop=0&transparent=1&ui_related=0&scrollwheel='; 

Затем вы можете изменить переменную прокрутки 0 или 1 при различных curcumstances и использовать JQuery для обновления IFRAME:

$('#modelviewer').attr('src', url + scroll); 
+0

Такая же основная идея, просто разные детали в сообщении. Я писал мои, когда вы отправляли, поэтому я не видел его, пока не отправил. – nurdyguy

0

Для чего это стоит здесь то, что я использую:

<div class="overlay" onClick="style.pointerEvents='none'"></div> 
<iframe src="https://google.com" width="100%" height="330px"></iframe> 

и

.overlay { 
    background:transparent; 
    position:relative; 
    z-index:1000; 
    width:100%; 
    height:330px; /* your iframe height */ 
    top:330px; /* your iframe height */ 
    margin-top:-330px; /* your iframe height */ 
    cursor:pointer; 
} 
Смежные вопросы