Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTML][JavaScript][CSS]regula css/js
Forum PHP.pl > Forum > Przedszkole
eminiasty
Jak napisac w css lub js reguly typu:

Np div "ABC"

jesli div "ABC" ma height > 30 to wysokosc =300

jesli w div "ABC" pojawia sie scroll(overflow y) to wyskosc =300
Comandeer
W CSS się nie da.

W JS to zabawa z elem.offsetHeight i elem.scrollHeight.
eminiasty
Pierwsze udalo mi sie rozwiazac tak:
  1. var cw = $('.menu').height();
  2.  
  3. if (cw>100){
  4. $('.menu').css({'width':'300px'});
  5. }


Drugie znalazlem cos takiego ale..:
  1. var element = document.querySelector('.menu');
  2. if( (element.offsetHeight < element.scrollHeight) || (element.offsetWidth < element.scrollWidth)){
  3. // your element have overflow
  4. element.style.width = "300px";
  5. element.style.background = "yellow";
  6. }
  7. else{
  8. //your element don't have overflow
  9. element.style.background = "red";
  10. }
  11.  


może po lekkiej modyfikacji nawet by dzialalo jak chce ale lecz, dziala to dopiero po odswiezeniu strony, otwieram menu jest czerwony
otworze sub menu(pokaze sie scroll z overflow) -powinno byc zolte i nie ma, a nie da sie w tym momencie zamknac odswiezyc strony i wykonac tego wtedy.. jak to obejsc?
patwoj98
Zobacz w konsoli co ma element .menu.
W którym miejscu ładujesz skrypt?
Jeśli u góry to proponuję dodać, aby załadowało po załadowaniu strony nasze jquery $(document).ready();
eminiasty
Wiec tak wyglada to tak:
http://viamarimar.cba.pl/green/#
(x przesuwa sie tylko przy malej szerokosci okna przegladarki)

-Jeśli zrozumiałem to element .menu ma dokladnie nav.menu

-skrypt uruchamia sie po otworzeniu jednego menu(slide),nastepnie w zaleznosci czy jest scroll czy nie chce by odrazu nastapilo jego "naprawienie" bez momentu przesuniecia

Dodalem to co proponujesz i tak:

1 przypadek - nawet sie nie otwiera slide menu:

  1. $( document ).ready(function() {
  2. var scrolled = false;
  3.  
  4. $('nav.menu').on('scroll', function() {
  5. scrolled = true;
  6. $('nav.menu').css('width','280px');
  7. });
  8. });


2 przypadek - efekt jest ten sam, zmiana wystepuje po przesunieciu scrola w menu dopiero

  1. $( document ).ready(function() {
  2. var scrolling = false;
  3.  
  4. $('nav.menu').on('scroll', function(e){
  5. if (!scrolling) {
  6.  
  7. if ($('.menu').scrollTop){
  8. $('nav.menu').css('width','280px');
  9. }
  10. else{
  11. $('nav.menu').css('width','none');
  12. }
  13.  
  14. }
  15.  
  16. });


-nav.menu dalem tylko ze wzgledu bo Pan up tak poradzil

Jakieś pomysły jak to obejść? a moze da się jakoś w CCS?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.