Jump to content
php.lv forumi
  • 0

mainīt width pēc nepieciešamības


Question

Posted (edited)

Sveiki. Tātad ir menu

<div id="#block-menu_block-1">
<ul>
<li><a>..</a></li>
<li><a>..</a></li>
<li><a>..</a></li>
</ul>
</div>

 

ar nenoteiktu skaitu li un nenoteiktu platumu (atkarībā no a href nosaukuma garuma). Ir tā, ka menu aiziet jau divās līnijās.

Kā varētu panākt to, ka attiecīgi, ja pirmajā rindā ir 9 <li><a>, tad atiecīgi viņiem visiem width tiek dalīts tā, lai būtu pa visu garo menu, tb neatstājot brīvu vietu?

 

$(function(){
//var menu_block = $("menu-block-1")
var menu_block_w = $("div.menu-block-1").width();
var right_el_left = 0;

// search first el from secongary 

$("#block-menu_block-1 li a").each(function(){
	//var offset = $(this).offset();
	//console.log(offset.left);

	// statiski $("#block-menu_block-1 li a").width(101);

});
})

 

statiskais variants šoreiz neder :[

Edited by anonīms

7 answers to this question

Recommended Posts

  • 0
Posted

$(function(){
var menu_block_w = $("div.menu-block-1").width(); //kāpēc 980, ja ir 968?
var menu_block_w = 968; // uzliekam manuāli


// skaitīsim kopējo child width
 var sum = 0;
$("#block-menu_block-1 li a").each(function(){
   sum += $(this).width();
	//$("#block-menu_block-1 li a").width(101);
});

 //alert(menu_block_w);
//alert(sum);

   if (menu_block_w >= sum) // izrēķinam cik + vajag
   {
   var need_menu_width = menu_block_w-sum;
   //alert('wops! vajag pielikt :X');
   alert(need_menu_width);
   }

})

 

pagaidām izskatās kaut kas šāds. Cik nu pareizi nepateikšu, jo js nav tā stiprākā puse

  • 0
Posted

Nu pašlaik variants ir šāds un problēma ir sekojoša. Viņš saskaita visus li kas ir, bet kaut kā ir nepieciešams iegūt tikai tos, kas atrodas pirmajā rindā. Kā to varētu panākt?

$(function(){

var menu_block_w = $("div.menu-block-1").width(); //kāpēc 980, ja ir 968?
var menu_block_w = 968; // uzliekam manuāli

// skaitīsim kopējo child width
 var sum = 0;
 var menu_childs = 0;
$("#block-menu_block-1 li a").each(function(){
 sum += $(this).width();
 menu_childs = menu_childs+1; // (15) vajag kaut kā dabūt tikai pirmo rindu nevis visus
});

   if (menu_block_w >= sum) // pietrūkst un vajag pielikt
   {
   alert(menu_childs);
   var need_menu_width = menu_block_w-sum;
   //alert('wops! vajag pielikt :X');
   alert(need_menu_width);
   }

})

  • 0
Posted

$(function(){

var menu_block_w = $("div.menu-block-1").width(); //kāpēc 980, ja ir 968?
var menu_block_w = 968; // uzliekam manuāli


// skaitīsim kopējo child width un skaitu
 var childs_width = 0;
 var childs_count = 0;
$("#block-menu_block-1 li a").each(function(){
var offset = $(this).offset();
if( offset.top != 333) // tikai pirmo rindu
{
childs_width += $(this).width();
 childs_count = childs_count+1;
}
  //console.log(offset.top);
});

 //alert(childs_width);
 //alert(childs_count);


   if (menu_block_w >= childs_width) // pietrūkst un vajag pielikt
   {
       var need_menu_width = menu_block_w-childs_width; // cik px vajag aizstāt
       // liekam papildus px
       $("#block-menu_block-1 li a").each(function(){
       	var offset = $(this).offset();
         if( offset.top != 333) // tikai pirmo rindu
         {

         }
       }


   //alert(need_menu_width);
   }

})

 

nu es izveidoju drusku savādāk, bet jebkurā gadījumā pabeigts vēl nav un esmu atvērts ieteikumiem.

  • 0
Posted

Tāds nu laikam varētu būt iznākums.

$(function(){

     var menu_block_w = $("div.menu-block-1").width(); //kāpēc 980, ja ir 968?
     //var menu_block_w = 986; // uzliekam manuāli


     // skaitīsim kopējo child width un skaitu
     var childs_width = 0;
     var childs_count = 0;
$("#block-menu_block-1 li a").each(function(){
     var offset = $(this).offset();

     if( offset.top != 333) // tikai pirmo rindu
     {
     childs_width += $(this).width();
     childs_count = childs_count+1;
     }
});



   if (menu_block_w >= childs_width) // pietrūkst un vajag pielikt
   {
         // cik katram vajag?
         var need_menu_width = menu_block_w-childs_width; // cik px vajag aizstāt
         var give_menu_width = Math.round(need_menu_width/childs_count);

         // liekam papildus px
         $("#block-menu_block-1 li a").each(function(){
             var offset = $(this).offset();
             if( offset.top != 333) // tikai pirmo rindu
             {
             var how_much = $(this).width()+give_menu_width;
             $(this).width(how_much); 
             }
         });

   }

})

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...