HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Общие вопросы программирования
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 04.09.2022, 14:41
Wiz
Познающий
Регистрация: 05.08.2022
Сообщений: 32
С нами: 1988298

Репутация: 0
По умолчанию

Всем привет! Помогите компетентные, кто в курсе как заставить 3D панораму подгружаться сразу.

Пример если я иду в объект напрямую через страницу - Республиканская инфекционная больница она работает и подгружается сразу.

Если же я захожу в объект через главную страницу вкладка> проекты - Проекты то, панорама срабатывает только после перезагрузки страницы внутри объекта.
 
Ответить с цитированием

  #2  
Старый 04.09.2022, 16:29
òbiòbi верифицированный пользователь.
Новичок
Регистрация: 09.03.2017
Сообщений: 0
С нами: 4831039

Репутация: 1976
По умолчанию

@Wiz, при переходе Главная -> Проекты -> 'Какой-то проект', страница загружается с таким разметкой

HTML:


Код:

Если обновить страницу

HTML:


Код:

проблема может быть либо в кривом плагине jQuery.threesixty, либо в неправильной его настройке

jquery.threesixty.js:

начните с отладки var pic = $(this);, что это за элемент и почему его ширина/высота при первом переходе на страницу равны 0

возможно у родительского элемента проблемы с высотой/шириной

Видел подобный плагин у Spectre css

360-Degree Viewer - Experimentals - Spectre.css CSS Framework

360-Degree Viewer is an interactive product photo viewer. It is built in pure CSS. Spectre.css CSS Framework is a lightweight, responsive and modern CSS framework for faster and extensible development.

picturepan2.github.io
 
Ответить с цитированием

  #3  
Старый 04.09.2022, 16:59
Wiz
Познающий
Регистрация: 05.08.2022
Сообщений: 32
С нами: 1988298

Репутация: 0
По умолчанию

@òbiòbi верифицированный пользователь., Спасибо, за наводку, буду смотреть.

@òbiòbi верифицированный пользователь., Плагин у spectre css работает корректно, так как полностью на чистом css, не совсем то, что нужно для нашего решения. Jquery.threesixty.js: наш плагин считывает размеры с картинки. Пока не удалось разрешить проблему(.
 
Ответить с цитированием

  #4  
Старый 04.09.2022, 21:55
òbiòbi верифицированный пользователь.
Новичок
Регистрация: 09.03.2017
Сообщений: 0
С нами: 4831039

Репутация: 1976
По умолчанию

@Wiz, попробуйте так

CSS:


Код:
#product1
{
display
:
block
;
width
:
100%
;
height
:
auto
;
}
 
Ответить с цитированием

  #5  
Старый 04.09.2022, 23:22
Mizuwokiru
Постоянный
Регистрация: 07.04.2015
Сообщений: 960
С нами: 5842272

Репутация: 1039


По умолчанию

Если придерживаться именно того же подхода, то div`у задавать конкретные размеры нужно уже после того, как картинки загружены, а именно внутри:

JavaScript:


Код:
if
(
totalProgress
==
options
.
images
.
length
-
1
)
 
Ответить с цитированием

  #6  
Старый 04.09.2022, 23:34
Wiz
Познающий
Регистрация: 05.08.2022
Сообщений: 32
С нами: 1988298

Репутация: 0
По умолчанию

Цитата:
Сообщение от Mizuwokiru  

Если придерживаться именно того же подхода, то div`у задавать конкретные размеры нужно уже после того, как картинки загружены, а именно внутри:

JavaScript:


Код:
if
(
totalProgress
==
options
.
images
.
length
-
1
)
JavaScript:


Код:
$
.
each
(
options
.
images
,
function
(
index, record
)
{
var
o
=
$
(
""
)
.
attr
(
"src"
,
record
)
.
load
(
function
(
)
{
if
(
index
>
pic
.
data
(
"tempIndex"
)
)
{
pic
.
data
(
"tempIndex"
,
index
)
pic
.
attr
(
"src"
,
$
(
this
)
.
attr
(
"src"
)
)
}
var
progress
=
pic
.
parent
(
)
.
find
(
".progressBar"
)
;
totalProgress
++
;
var
maxsize
=
pic
.
parent
(
)
.
find
(
".progressBg"
)
.
width
(
)
;
var
newWidth
=
(
totalProgress
/
options
.
images
.
length
)
*
maxsize
;
progress
.
stop
(
true
,
true
)
.
animate
(
{
width
:
newWidth
}
,
250
)
;
if
(
totalProgress
==
options
.
images
.
length
-
1
)
{
loaded
=
true
;
pic
.
parent
(
)
.
find
(
".overlay, .progressBar, .progressBg"
)
.
remove
(
)
;
}
}
)
;
cache
.
push
(
o
)
;
}
)
;
}
)
Цитата:
Сообщение от òbi  

@Wiz, попробуйте так

CSS:


Код:
#product1
{
display
:
block
;
width
:
100%
;
height
:
auto
;
}
Слишком просто), не работает, к сожалению.
 
Ответить с цитированием

  #7  
Старый 05.09.2022, 00:49
L2Banners
Постоянный
Регистрация: 20.01.2016
Сообщений: 403
С нами: 5428363

Репутация: 408
По умолчанию

Размер блока задается исходя из размера первого изображения в массиве, скорее всего изображение просто не успевает прогрузится, чтобы можно было получить его размер. Даже если точку останова поставить и продолжить, то все прогружается. Ну это так на вскидку, без доступа к коду особо нечего дебажить.

Цитата:
Сообщение от Wiz  

то, панорама срабатывает только после перезагрузки страницы внутри объекта.
В подтверждение моих слов, обнови страницу через ctrl+f5 панорама так же не грузится.
 
Ответить с цитированием

  #8  
Старый 05.09.2022, 00:54
Wiz
Познающий
Регистрация: 05.08.2022
Сообщений: 32
С нами: 1988298

Репутация: 0
По умолчанию

Цитата:
Сообщение от L2Banners  

Размер блока задается исходя из размера первого изображения в массиве, скорее всего изображение просто не успевает прогрузится, чтобы можно было получить его размер. Даже если точку останова поставить и продолжить, то все прогружается. Ну это так на вскидку, без доступа к коду особо нечего дебажить.

В подтверждение моих слов, обнови страницу через ctrl+f5 панорама так же не грузится.
Через ctrl+f5 со второго раза заводиться.
 
Ответить с цитированием

  #9  
Старый 05.09.2022, 01:01
L2Banners
Постоянный
Регистрация: 20.01.2016
Сообщений: 403
С нами: 5428363

Репутация: 408
По умолчанию

Цитата:
Сообщение от Wiz  

Через ctrl+f5 со второго раза заводиться.
Это все просто случайность, иногда скрипт выполняется чуть позже и изображение успевает загрузится, в общем такой подход неправильный, скрипт должен выполняться только тогда когда изображение загружено, по сути нужно найти изображение которое задает размер, повесть на него событие image.onload по выполнению которого запустить инициализацию

https://i.gyazo.com/5e27e30cf392eee5...fc6d164a2b.mp4
 
Ответить с цитированием

  #10  
Старый 05.09.2022, 01:04
Wiz
Познающий
Регистрация: 05.08.2022
Сообщений: 32
С нами: 1988298

Репутация: 0
По умолчанию

Цитата:
Сообщение от L2Banners  

Это все просто случайность, иногда скрипт выполняется чуть позже и изображение успевает загрузится, в общем такой подход неправильный, скрипт должен выполняться только тогда когда изображение загружено, по сути нужно найти изображение которое задает размер, повесть на него событие image.onload по выполнению которого запустить инициализацию

https://i.gyazo.com/5e27e30cf392eee5...fc6d164a2b.mp4
Да, тоже заметил, что просто случайность.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.