Slyweb
На разработку сайта! Скидки 50%!

собственная функция и jquery

Здесь обсуждается всё, что касается jQuery

собственная функция и jquery

Сообщение balashovka » 08 июн 2012, 13:40

здравствуйте. с jquery только знакомлюсь, поэтому прошу помощи. на странице http://uc.vitragestyle.ru/4pik/news.php попробовал реализовать свою функцию вместе с jquery. вроде работает... НО срабатывает только при изменении размера страницы. при загрузке не работает. вот собственно код:
Код: Выделить всё
function szes(){
  var bHght=$('body').outerHeight();// высота документа
  $('#bhght').text(bHght);
  var wHght=window.innerHeight;// высота окна браузера
  $('#whght').text(wHght);
  var lgHght=Math.max(wHght/4);
  lgHght=lgHght + 'px';
  $('#lgtp').css('height', lgHght);
  var sectHght; //высота тела без футера
  if (bHght>=wHght){
    sectHght=bHght-100;
  } else {
    sectHght=wHght-100;
  }
  $('#sect').css('height',sectHght + 'px');
  $('#sectTxt').text(sectHght);
  $('#mrkrTxt').text($('#mrkr').offset().top);
}
$(document).ready(function(){ //
   $("#top-panel").slideToggle();
   // Lets make the top panel toggle based on the click of the show/hide link   
   $("#sub-panel").click(function(){
      // Toggle the bar up
      $("#top-panel").slideToggle();
   }); // end sub panel click function
   // модальное окно
   $(".various").fancybox({
      maxWidth   : 800,
      maxHeight   : 600,
      fitToView   : false,
      width      : '70%',
      height      : '70%',
      autoSize   : false,
      closeClick   : false,
      openEffect   : 'none',
      closeEffect   : 'none'
   });
   $(".fancybox").fancybox({padding:7,autoPlay: true});// галерея
   $('#clck').click(); //вывод мод.окна если IE
   szes();
}); // end on DOM
$(window).resize(function(){
    szes();
});

о том, что не работает можно судить по значению "маркер" (определяется по положению div-а с id="mrkr"). к примеру, при загрузке страницы - документ: 591 | окно: 837 | section: 737 | маркер: 461, при ресайзе - приблизительно соответствует действительности (документ: 838 | окно: 515 | section: 738 | маркер: 700), при восстановлении окна на всю высоту - соответствует действительности. ПОЧЕМУ только при ресайзе?
код указан весь, т.к. может szes() конфликтует с другими функциями?
где-то подозреваю, что положение маркера браузер определяет без учёта высоты изображений. но, по идее, высота изображения определяется автоматически, если указана его ширина. неужели браузер не считает высоту изображения?
balashovka
 
Сообщения: 7
Зарегистрирован: 08 июн 2012, 13:05

Re: собственная функция и jquery

Сообщение admin » 08 июн 2012, 19:59

У меня тот же код работает, значение одинаковое при загрузке и при изменении размера окна.
Посмотрите статью jQuery для начинающих.javascript методы для определения размеров объекта windows и их аналоги в jQuery
http://slyweb.ru/jquery/27.php
Там всё объясняется и все методы измерения.
admin
Администратор
 
Сообщения: 165
Зарегистрирован: 15 авг 2009, 20:02

Re: собственная функция и jquery

Сообщение balashovka » 09 июн 2012, 08:35

собственно, с этой страницы я и попал к вам на сайт из гугла.
лучше раз увидеть (так говорят). поэтому вот - http://uc.vitragestyle.ru/4pik/fortest.php
balashovka
 
Сообщения: 7
Зарегистрирован: 08 июн 2012, 13:05

Re: собственная функция и jquery

Сообщение admin » 09 июн 2012, 09:40

Пока единственное что заметил что на странице контакты отсутствует сам элемент:

$("#mrkr").offset() is null


$('#mrkrTxt').text($('#mrkr').offset().top);
admin
Администратор
 
Сообщения: 165
Зарегистрирован: 15 авг 2009, 20:02

Re: собственная функция и jquery

Сообщение balashovka » 09 июн 2012, 13:56

на странице контакты я его не ставил - не дошёл ещё туда. не могу понять, почему на скриншоте правильно определена высота документа и, соответственно, футер на своём месте, а у меня такие косяки. причём смотрю на 5-и разных мониторах (разный формат и разрешение). по большому счёты, мониторы здесь не играют роялей - неправильно определяетс высота документа. а от него и от высоты браузера расчитываю высоту основного блока и положение футера....
блин, как лечить?
balashovka
 
Сообщения: 7
Зарегистрирован: 08 июн 2012, 13:05

Re: собственная функция и jquery

Сообщение admin » 09 июн 2012, 16:51

Удаление $('#sect').css('height',sectHght + 'px'); не решит проблему, а то кто его знает какой скрипт мешает, вроде бы всё верно.
admin
Администратор
 
Сообщения: 165
Зарегистрирован: 15 авг 2009, 20:02

Re: собственная функция и jquery

Сообщение balashovka » 12 июн 2012, 14:11

победил :D
может кому пригодится: jquery отрабатывал всё правильно. углы были в css - для изображений-ссылок нужно было устанавливать не align="left", а float:left для элемента a. ну и обработку ф-ции szes() вешать не на $(document).ready() а на $(window).load()
balashovka
 
Сообщения: 7
Зарегистрирован: 08 июн 2012, 13:05


Вернуться в Всё о jQuery

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0

cron