#javascript #jquery #static #border #sliding
#javascript #jquery #статический #граница #скольжение
Вопрос:
редактировать: Я не хочу просто брать содержимое с разных страниц и загружать его на текущую страницу. Что я действительно хочу сделать, так это загрузить разные HTML-файлы, которые будут интерактивными в телевизоре. Я обнаружил, что это сложно сделать, потому что вы не можете загружать html-файлы в DIV и вы не можете нажимать на ссылки через прозрачный png-файл.
Здравствуйте,
Я создаю веб-сайт для телешоу, которое мы с моими друзьями вызываем каждый божий день.
здесь вы можете увидеть макет того, что у меня есть на данный момент: http://www.uvm.edu /~areid/cs195/final/S/S.html
на данный момент изображение, которое я использую, — это всего лишь одно большое изображение, которое я нарезал с помощью Photoshop.
Моя цель — использовать какой-нибудь скрипт, чтобы сделать так, чтобы внешний телевизор оставался на месте статически, а веб-контент внутри телевизора переходил без перезагрузки самого внешнего телевизора.
Я хотел объединить этот метод с чем-то похожим на скрипт fss slider, чтобы позволить каждой странице на сайте скользить, создавая впечатление, что это продолжение комнаты. -Возможно, это даже не лучший способ достичь желаемого результата.
У меня есть все мои изображения, нарисованные и нарезанные, все, что мне нужно сейчас, это некоторое направление в том, что именно искать, чтобы найти части, которые я ищу.
Большое вам спасибо, я рад, что присоединился к этому сообществу,
купер Рейд
Ответ №1:
Правка 5: http://jsfiddle.net/wdm954/pqAJK/10 / (Показывает дополнительный контент.)
Правка 4: http://jsfiddle.net/wdm954/pqAJK/7
Эта демонстрация включает панорамирование до определенных кадров.
var h = $('.clickable div').height(); //height of a single content DIV
var divCount = 0;
$('.clickable div').each(function() { divCount ; }); //count number of content DIVs
$('.pan').click(function(e) {
e.preventDefault(); //prevent default action (of <a>)
if ($('.content div').is(':animated')) return false; //disable click while animating
var x = $(this).attr('href'); x = $(x).index(); //get index of destination element
$('.content div').animate({top: -x*h 'px'}, 2000); //animate to destination
});
$('#tv-right').click(function() {
if ($('.content div').is(':animated')) return false; //disable click while animating
$('.content div').animate({top: '-=' h 'px'}, 2000); //animation
//if last div then go back to the start
if ($('.content div:last').css('top') == (-h * (divCount - 1)) "px") {
$('.content div').stop().animate({ top: '0px' }, 1000);
}
});
Правка 3: http://jsfiddle.net/wdm954/pqAJK/5
Хорошо, посмотрите эту демонстрацию. Нажатие на правую сторону телевизора (где вы можете разместить несколько кнопок) приведет к прокрутке содержимого на экране. Когда вы дойдете до последнего раздела содержимого, следующий щелчок приведет к возврату в первый раздел содержимого. Я расположил содержимое так, чтобы фоновые разделы прокручивались за телевизионным изображением, а содержимое прокручивалось выше (чтобы вы могли щелкнуть по нему. Есть несколько других приемов, но посмотрите на это, и вы должны уловить идею.
Правка 2: http://jsfiddle.net/wdm954/pqAJK/3 / (Щелкните телевизор, чтобы увидеть переход. Здесь есть разделы содержимого вместо просто фонового изображения).
Редактировать: Посмотрите эту демонстрацию: http://jsfiddle.net/wdm954/pqAJK
Я бы сначала вырезал экранную часть телевизора и сохранил ее в формате .png с прозрачностью, чтобы вы могли видеть, что находится за экранной частью телевизора.
Затем вы можете добавить фоновое изображение и анимировать его с помощью jQuery, чтобы отобразить ту часть, которую вы хотели бы отобразить.
Я * лично не стал бы использовать какие-либо фрагменты, своего рода старомодный прием, когда у большинства людей не было высокоскоростных подключений.
Комментарии:
1. какой самый последний метод обрезки изображения? Мне нравится рисовать свой сайт вручную, поэтому я всегда думал, что его нарезка — хороший метод
2. В эти дни я вырезаю изображения только при необходимости, например, для целей верстки. Посмотрите демонстрационную ссылку, которую я опубликовал. Телевизор — это всего лишь одно изображение, установленное в DIV. Я вырезал экран в Photoshop и сохранил его в формате .png с прозрачностью, чтобы вы могли видеть всю область экрана. Затем я использовал длинный фон (заданный с помощью CSS) и использовал немного jQuery для анимации положения фона.
3. @cooper Посмотрите вторую демонстрационную ссылку, которую я опубликовал. Показывает, как этого можно достичь не только с помощью фонового изображения, но и с помощью разделов содержимого.
4. это действительно мило. Могу ли я просто использовать это в сочетании с идеей waitingforatrain использовать ajax .get для загрузки веб-страницы без обновления?
5. @cooper Какой контент вы будете загружать? Я не думаю, что ajax здесь необходим, если у вас нет тонны контента или файлов очень большого размера.
Ответ №2:
- Оберните все внутри внешнего телевизора в
<div>
- Создайте отдельные HTML-страницы, содержащие только HTML-код контента, который вы хотите разместить внутри телевизора.
- Используйте метод AJAX get от jQuery, чтобы получить HTML для страницы без ее обновления.
например, ваше «одиночное» изображение находится в <td>
с идентификатором «rightframe». Итак, при щелчке правой рамки вы можете захотеть получить html страницы с именем single.html и поместите это внутри телевизора (давайте предположим, что ваш <div>
или <table>
, у которого есть код, имеет идентификатор content
):
$('#rightframe').click(function() {
$.get('single.html', function(data) {
$('#content').html(data);
});
});
Редактировать: Для скользящей части вам пришлось бы создать две отдельные таблицы / divs бок о бок, одну для текущей страницы и одну для загружаемой страницы. Тогда вы могли бы использовать плагин jQuery, такой как Slidy http://www.wbotelhos.com/slidy для перехода между ними.
Лично я думаю, что было бы намного круче, если бы вы могли поместить анимированный GIF с изображением белого шума телевизора на телевизоре во время загрузки страницы 🙂
Комментарии:
1. Привет, большое спасибо, что было действительно полезно, я надеюсь, что в конечном итоге на каждом телевизоре появится gif с белым шумом, пока вы не наведете курсор мыши, тогда это будет быстрый gif телевизионного шоу 🙂
2. можете ли вы подробнее рассказать о том, как создать две отдельные таблицы / divs бок о бок? это обязательно должно быть в одном HTML-файле, или я мог бы сделать ссылку на отдельный HTML-файл?
3. не могли бы вы сказать мне, как инициализировать первый контент, который позволит мне щелкнуть по ссылке #’rightframe’?
4. Ваш последний вопрос: в вашем
<head>
разделе html поместите<script type="text/javascript"> $( function() { **YOUR CODE HERE ** }); </script>
,$(function(){});
это специальная конструкция jQuery, которая гласит «сделайте это при загрузке окна». Первый вопрос: Это не просто. Если вы собираетесь использовать белый шум, просто забудьте о скользящих переходах, потому что это просто нагрузка, которую вам придется отменить позже.
Ответ №3:
Что-то вроде следующего:http://jsfiddle.net/Vzdu7